SSH---------- Shiro提供权限的控制方式(4种)
- Shiro提供权限的控制方式
1.第一种 URL拦截权限控制(之前的在spring种配置的 /page_base_staff.action=roles["staff"] 就是url拦截)
2.第二种:方法注解权限控制
- 步骤
- 第一步:
- 在spring中配置shiro注解
<!-- 开启shiro注解 --> <!-- 自动代理 --> <bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> <!-- 强制使用cglib为Action创建代理对象 --> <property name="proxyTargetClass" value="true"></property> </bean>
<!-- 切面类 --> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/> |
第二步
- 在Action的方法上使用shiro的注解描述执行当前方法需要具有的权限
- 这里给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
-
-
- 第三步:
-
- 如果配置环境是Jdk1.7 + shiro +Spring3.0 + Struts2 + Hibernate3,会有BaseAction()方法,需要添加如下代码
-
-
- 第四步
-
- 在spring中配置一个staffAction的Bean
- 在Action中无法注入Service的情况,手动创建一个action的bean即可,这个具体原因还没研究透
-
-
- 第五步:
-
配置一个全局的权限url
-
-
- 第六步:
-
- 在BOSRealm添加授权staff的权限
3。第三种 页面标签权限控制
第一步:在jsp页面中引入shiro的标签
第二步:使用shiro的标签根据当前用户拥有的权限动态展示页面元素
<shiro:hasPermission name="staff"> <a id="save" icon="icon-save" href="#" class="easyui-linkbutton" plain="true" >保存</a> </shiro:hasPermission> |
4、第四种 代码级别控制