SSH---------- Shiro提供权限的控制方式(4种)

 

 

  1. Shiro提供权限的控制方式

 

1.第一种   URL拦截权限控制(之前的在spring种配置的  /page_base_staff.action=roles["staff"] 就是url拦截)

 

2.第二种:方法注解权限控制

  1. 步骤
  1. 第一步:
  2. 在spring中配置shiro注解

<!-- 开启shiro注解 -->

    <!-- 自动代理 -->

    <bean id="defaultAdvisorAutoProxyCreator"

       class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">

       <!-- 强制使用cglibAction创建代理对象 -->

       <property name="proxyTargetClass" value="true"></property>

    </bean>

   

    <!-- 切面类 -->

    <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/>

第二步

  1. 在Action的方法上使用shiro的注解描述执行当前方法需要具有的权限
  2. 这里给StaffAction的save方法添加一个staff权限

@RequiresPermissions(value="staff")

    public String save(){

      

       return "list";

    }

 

 

https://www.cnblogs.com/ToddleLobster/articles/7941624.html

http://www.iteye.com/problems/94322

      1. 第三步:
  1. 如果配置环境是Jdk1.7 + shiro +Spring3.0 + Struts2 + Hibernate3,会有BaseAction()方法,需要添加如下代码

SSH---------- Shiro提供权限的控制方式(4种)

 

      1.  第四步
  1. 在spring中配置一个staffAction的Bean

SSH---------- Shiro提供权限的控制方式(4种)

 

  1. 在Action中无法注入Service的情况,手动创建一个action的bean即可,这个具体原因还没研究透

 

      1. 第五步:

配置一个全局的权限url

SSH---------- Shiro提供权限的控制方式(4种)

 

      1. 第六步:
  1. 在BOSRealm添加授权staff的权限

SSH---------- Shiro提供权限的控制方式(4种)

 

 

 

3。第三种  页面标签权限控制

第一步:在jsp页面中引入shiro的标签

SSH---------- Shiro提供权限的控制方式(4种)

第二步:使用shiro的标签根据当前用户拥有的权限动态展示页面元素

<shiro:hasPermission name="staff">

      <a id="save" icon="icon-save" href="#" class="easyui-linkbutton" plain="true" >保存</a>

</shiro:hasPermission>

 

4、第四种   代码级别控制

SSH---------- Shiro提供权限的控制方式(4种)