使用shiro框架,AuthorizationInfo方法没有被执行的问题
2016-07-06 16:52
260 查看
作为一名菜鸟,前几天在使用shiro框架的时候,在使用权限控制的使用,使用注解的方式@RequiresRoles对某个控制器进行注解的时候,发现AuthorizationInfo方法方法并没有被执行,因此权限验证失败,后来找了原因,发现在使用注解的时候,我们不能直接使用@RequiresRoles或者@RequiresPermissions这两个注解直接放在控制器上面,也就是如下图所示:
以为该权限能直接控制控制器中的所有方法,对其进行权限控制,其实这个控制器会被扫描到的,因此需要把@RequiresRoles或者@RequiresPermissions这两个注解直接放到对应需要权限控制的方法才行,也就是如下图所示:
这是AdmUserController控制器中的一个方法,需要把注解定位到这个方法上才能执行。
除此之外,总结一下别的网友存在的其他导致AuthorizationInfo方法不能被执行的原因,
1.在自定义的realm中缺少了depen-on,也就是在你的spring-shiro.xml配置文件中,对于自定义realm的bean,realm中用到了其他的dao或者service,同样也要注明,如下图所示:
若存在使用多个dao,则使用“,”,也就是逗号隔开。
2,还有一种原因就是因为你使用springmvc框架的使用,在springmvc.xml缺少了<aop:config>这个标签的内容,如下图所示:
缺少这样一句话,也会导致无法执行,如果是其他的,那就是你基本的springmvc.xml, spring-shiro.xml ,web.xml这三个配置文件有某个地方出错或者忘了写提供注解配置语句,请仔细检查。
以后是我作为一个菜鸟的愚见,欢迎指正批评
以为该权限能直接控制控制器中的所有方法,对其进行权限控制,其实这个控制器会被扫描到的,因此需要把@RequiresRoles或者@RequiresPermissions这两个注解直接放到对应需要权限控制的方法才行,也就是如下图所示:
这是AdmUserController控制器中的一个方法,需要把注解定位到这个方法上才能执行。
除此之外,总结一下别的网友存在的其他导致AuthorizationInfo方法不能被执行的原因,
1.在自定义的realm中缺少了depen-on,也就是在你的spring-shiro.xml配置文件中,对于自定义realm的bean,realm中用到了其他的dao或者service,同样也要注明,如下图所示:
若存在使用多个dao,则使用“,”,也就是逗号隔开。
2,还有一种原因就是因为你使用springmvc框架的使用,在springmvc.xml缺少了<aop:config>这个标签的内容,如下图所示:
缺少这样一句话,也会导致无法执行,如果是其他的,那就是你基本的springmvc.xml, spring-shiro.xml ,web.xml这三个配置文件有某个地方出错或者忘了写提供注解配置语句,请仔细检查。
以后是我作为一个菜鸟的愚见,欢迎指正批评
相关文章推荐
- 人生第一个shell脚本
- Maven项目构建报错
- jmeter 脚本增强(检查点、集合点)
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
- 领土划分
- Mac上更新Ruby
- java回调函数
- java中list转数组操作
- cisco路由器密码恢复
- ibatis 批处理
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
- U-Boot 的移植入门(2)——nand flash识别与操作
- C++虚函数和纯虚函数
- Linux保存修改vi指令
- iOS app性能优化的那些事(一)
- JMeter基础之-使用技巧
- jmeter 脚本增强(参数化)
- JAVA的节点流和处理流
- Linux lsof命令使用小结
- 带 IK 分词器的 Luke 和 搜索应用服务器solr