使用shiro框架,AuthorizationInfo方法没有被执行的问题

来源:互联网 发布:淘宝twizzlers扭扭糖 编辑:程序博客网 时间:2024/05/01 03:43

  作为一名菜鸟,前几天在使用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这三个配置文件有某个地方出错或者忘了写提供注解配置语句,请仔细检查。

   以后是我作为一个菜鸟的愚见,欢迎指正批评

0 0
原创粉丝点击