您的位置:首页 > 其它

shiro-权限注解

2017-10-31 20:16 169 查看
摘自:http://www.cnblogs.com/wq3435/p/6271381.htmlshiro通过注解进行权限验证:在shiro的xml配置文件里设置
<beanid="lifecycleBeanPostProcessor"class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/><beanclass="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"depends-on="lifecycleBeanPostProcessor"><propertyname="proxyTargetClass"value="true"/></bean>
lifecycleBeanPostProcessor和securityManager是在shiro配置文件中定义好的:<beanid="lifecycleBeanPostProcessor"class="org.apache.shiro.spring.LifecycleBeanPostProcessor"></bean><!--Shiro安全管理器--><beanid="securityManager"class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"><propertyname="realm"ref="jdbcRealm"></property><propertyname="cacheManager"ref="cacheManager"></property></bean>当权限验证不通过时或报错:org.apache.shiro.authz.AuthorizationException:Notauthorizedtoinvokemethod:publicvoidcom.java.shiro.services.ShiroService.shiroServiceMethod()  对于异常可以使用spring的声明式异常搞出一个错误页面,使用注解@ExceptionHandler和@ControllerAdvice这里有一个问题要注意:  在Service方法上使用注解@Transactional即在方法开始的时候会有事务,这个时候这个Service已经是一个代理对象,  这个是有把权限注解加到Service上是不好用的,会发生类型转换异常。需要加到Controller上,因为不能够让Service是代理的代理。
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: