如题,区分两个realm的登录和授权操作已经实现,但是在使用subject.logout()登出时,会同时清除两个realm的授权和登录信息,如果想单独清除某个realm的登录和授权信息应该怎么办。
值得一提的是,我在网上看到有些说shiro配置时,不去指定session,shiro的 SecurityUtils.getSubject().getSession()的获取的sesssion和sevlet的session是不同的,然而在我这个配置中,惊奇的发现我项目中shiro的session和servlet的session是同一个,所以说,是不是因为这个原因导致subject.logout()退出时两个realm同时清除了授权和登录信息?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="userRealm" class="com.test.shiro.realm.CustomUserRealm"></bean>
<bean id="adminRealm" class="com.test.shiro.realm.CustomAdminRealm"></bean>
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="authenticator" ref="authenticator"></property>
<property name="realms">
<list>
<ref bean="adminRealm"/>
<ref bean="userRealm"/>
</list>
</property>
</bean>
<bean id="authenticator" class="com.test.shiro.auth.CustomizedModularRealmAuthenticator">
<property name="authenticationStrategy">
<bean class="org.apache.shiro.authc.pam.FirstSuccessfulStrategy"></bean>
</property>
</bean>
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
<!-- 启用shrio授权注解拦截方式 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager"/>
<property name="filterChainDefinitions">
<value>
/static/** = anon
</value>
</property>
</bean>
<bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
<property name="proxyTargetClass" value="true"></property>
</bean>
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"></bean>
</beans>
刚接触shiro,一些配置还不是很清楚,请各位大神帮忙看看,好几天了,没有什么好的解决办法
没有人吗,哎