解决Shiro注解无效的问题

当Shiro集成到Spring mvc中,却发现shiro的权限注解不起作用,官方的配置是要支持注解,只需要将以下代码加到spring 配置文件中即可:

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor">

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

</bean>

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

<property name="securityManager" ref="securityManager"/>

</bean>

后来研究发现,不起作用是因为代码放的位置不对,需要将上面代码放到视图的配置文件中,如:spring-mvc.xml

文/Devid(简书作者)

原文链接:http://www.jianshu.com/p/3716ee8e3adc

来自为知笔记(Wiz)

时间: 2024-10-13 18:43:56

解决Shiro注解无效的问题的相关文章

JAVA自定义注解 和 运行时靠 反射获取注解,解决 shiro 注解型权限因子获取问题

项目的权限分配,采用的是RBAC的设计模式.后台配置权限的时候,需要获取到所有的权限因子. 不经让我想起YII框架的SRBAC模块,还有以前的一个ecshop改造系统的权限配置方式,都采用的是PHP的反射机制. 于是把PHP项目的经验带到JAVA项目中,发现PHP中的经验在java中,实现起来不是那么的方便. 这主要的原因:一是语言上的特性导致权限控制方面的差异性. 二是项目使用的是SSH框架,action的名称已经使用注解替换了原有名称.使用反射获取到的类名和方法名组合,不是有效的权限因子(当

shiro + struts2 在action 中使用 shiro 注解 @requiresPermissions 报错: 方法找不到,类初始失败

06:36:34,405 ERROR http-8084-2 dispatcher.Dispatcher:38 - Exception occurred during processing request: $Proxy15.user_() java.lang.NoSuchMethodException: $Proxy*.user_() at java.lang.Class.getMethod(Class.java:1605) at org.apache.struts2.interceptor.

sql server 2008 提示评估期已过的解决方法(升级无效)

提示窗口: 解决步骤: 第一步:进入SQL2008配置工具中的安装中心 第二步:再进入维护界面,选择版本升级 第三步:进入产品密钥,输入密钥 第四步:一直点下一步,直到升级完毕. SQL Server 2008 Developer(开发版):PTTFM-X467G-P7RH2-3Q6CG-4DMYB SQL Server 2008 Enterprise(企业版):JD8Y6-HQG69-P9H84-XDTPG-34MBB 注意:如以上选择“版本升级”总提示“失败”并要求“重启计算机”时,请把进程

IE8下解决position:flxed无效的问题

只需将文档类型声明改成如下方式即可 <!DOCTYPE html> IE8下解决position:flxed无效的问题

Shiro注解不起作用! @RequiresPermissions

shiro开启注解支持,必须将 <!-- 保证实现了Shiro内部lifecycle函数的bean执行 --> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> <!-- 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAO

解决shiro登陆超时ajax请求跳转

使用JQueryEasyUI的时候,普通请求在shrio登陆超时的时候都可以正常跳转,而ajax请求在登陆超时的时候就不跳转,上网找了下资料,都表达的不明确,而且设置一大堆,还得写过滤器.无意中找到JQuery设置全局 AJAX 默认选项.具体代码如下! $.ajaxSetup({     complete:function(XMLHttpRequest,textStatus){           if(textStatus=="parsererror"){             

servlet3.0 @WebServlet注解无效的情况

web.xml文件中的metadata-comcomplete属性的作用: 该属性指定当前的部署描述文件是否是完全的.如果设置为true,则容器在部署时只依赖部署描述文件,忽略所有的注解(同时也会跳过web-fragment.xml的扫描,亦即禁用可插性支持):如果设置为false或不配置该属性,则表示启用注解支持(和可插性支持). 注解有效的web.xml(metadata-complete="false"或者直接删除) <web-app xmlns:xsi="htt

springmvc集成shiro注解权限

源代码下载:http://download.csdn.net/detail/u013147600/9066923 java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around错误解决方法:http://blog.csdn.net/u013147600/article/details/48132947 配置aop错误: org.springframework.beans.factory.xml.XmlBeanDefinit

解决shiro会话标识未更新问题

要解决会话标识未更新的安全问题,就需要在做登录验证时生成新的session,所以需要先将原来的session失效. 一般的解决方法如下: public void login(HttpServletRequest request, ...){ // 让旧session失效 request.getSession(true).invalidate(); //登录验证 } 但是,如果使用了shiro框架,这样做会报错:...Session already invalidated.原因是shiro对Htt