shiro多realm中,有没有什么办法可以区分两个realm的登录、授权、和退出

如题,区分两个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,一些配置还不是很清楚,请各位大神帮忙看看,好几天了,没有什么好的解决办法

阅读 5.1k
2 个回答

没有人吗,哎

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题