shiro中Realm配置

转自https://www.cnblogs.com/diaoniwa/p/6918896.html

<!-- 用户授权信息Cache 缓存在本机内存,不支持集群 -->
    <bean id="cacheManager" class="org.apache.shiro.cache.MemoryConstrainedCacheManager"/>

    <!-- 继承自AuthorizingRealm的自定义Realm,即指定Shiro验证用户登录的类为自定义的ShiroDbRealm.java -->
    <bean id="dormAdminRealm" class="hstc.edu.cn.realm.dormAdminRealm">
        <property name="cacheManager" ref="cacheManager"/>
    </bean>

    <!-- 继承自AuthorizingRealm的自定义Realm,即指定Shiro验证前台用户登录的类为自定义的ShiroDbRealm.java -->
    <bean id="studentRealm" class="hstc.edu.cn.realm.studentRealm">
        <property name="cacheManager" ref="cacheManager"/>
    </bean>

    <!--多个realm 的集中管理  -->
    <bean id="defineModularRealmAuthenticator" class="hstc.edu.cn.realm.DefaultModularRealm">
        <property name="definedRealms">
            <map>
                <entry key="studentRealm" value-ref="studentRealm" />
                <entry key="dormAdminRealm" value-ref="dormAdminRealm" />
            </map>
        </property>
        <property name="authenticationStrategy">
            <bean class="org.apache.shiro.authc.pam.FirstSuccessfulStrategy" />
        </property>
    </bean>
    <!-- Shiro默认会使用Servlet容器的Session,可通过sessionMode属性来指定使用Shiro原生Session -->
    <!-- 即<property name="sessionMode" value="native"/>,详细说明见官方文档 -->
    <!-- 这里主要是设置自定义的单Realm应用,若有多个Realm,可使用'realms'属性代替 -->
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="authenticator" ref="defineModularRealmAuthenticator" />
        <!--    <property name="realm" ref="loginRealm"/> -->
        <property name="realms"  >
            <list>
                <bean id="loginRealm" class="hstc.edu.cn.realm.dormAdminRealm" />
                <bean id="userloginRealm" class="hstc.edu.cn.realm.studentRealm" />
            </list>
        </property>
        <property name="cacheManager" ref="cacheManager"/>
    </bean>

    <!-- Shiro过滤器 -->
    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <!-- Shiro的核心安全接口,这个属性是必须的 -->
        <property name="securityManager" ref="securityManager" />
        <!-- 身份认证失败,则跳转到登录页面的配置 -->
        <property name="loginUrl" value="/login.jsp" />
        <!-- <property name="unauthorizedUrl" value="/unauthorized.jsp" />  -->
        <!-- Shiro连接约束配置,即过滤链的定义 -->
        <property name="filterChainDefinitions">
            <value>
                /login=anon
                /user/**=authc
            </value>
        </property>
    </bean>

猜你喜欢

转载自blog.csdn.net/u011607686/article/details/80360938