gpt4 book ai didi

java - 在基于 Spring 的应用程序中启用 Shiro 注解

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:37 25 4
gpt4 key购买 nike

我的项目有两个模块 - 网络商业

web模块中,有一个带有配置的shiro.ini文件(如教程中的 - https://github.com/lhazlewood/apache-shiro-tutorial-webapp/blob/step7/src/main/webapp/WEB-INF/shiro.ini - 具有我自己的属性)。

业务模块中,有一个包含以下代码的applicationContext.xml文件:

<bean id="iniRealm" class="org.apache.shiro.realm.text.IniRealm">
<property name="resourcePath" value="file:C:\project\webmodule\src\main\webapp\WEB-INF\shiro.ini" />
</bean>

<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />

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

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="iniRealm" />
</bean>

<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager" />
</bean>

但是如果我想使用注释,例如 @RequiresAuthentication ,它不起作用。

applicationContext.xml中的配置是否足够?哪里可能有错误呢? 网络模块中的身份验证工作正常。

会不会是过滤器的问题?我是否必须定义两个过滤器,其中一个带有 <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>另一个是 <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> ?谢谢您的建议。

最佳答案

你的配置已经足够了。如果您有其他 AOP 设置,例如 BeanNameAutoProxyCreator,则还需要将 bean AuthorizationAttributeSourceAdvisor 添加到属性 interceptorNames 中。

关于java - 在基于 Spring 的应用程序中启用 Shiro 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21106680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com