自学-Shiro中多个Realms的另外一种配置方式-11

来源:互联网 发布:杭州软件 编辑:程序博客网 时间:2024/05/06 03:50

前几节中项目中的Realms都是这样配置的,现在有一个其他的配置方法也是很好,首先先和之前的配置做个对比:

之前的:

                

<!--多个realm的配置-->    <bean id="authenticator" class="org.apache.shiro.authc.pam.ModularRealmAuthenticator">    <!--<property name="realms">    <list>    <ref bean="jdbcRealm"/>    <ref bean="jdbcRealm2"/>    </list>    </property>    --><property name="authenticationStrategy">    <bean class="org.apache.shiro.authc.pam.AllSuccessfulStrategy">    </bean>    </property>    </bean>

现在的:

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">        <property name="cacheManager" ref="cacheManager"/>        <!-- Single realm app.  If you have multiple realms, use the 'realms' property instead. -->        <property name="sessionMode" value="native"/>        <!--<property name="realm" ref="jdbcRealm"/>    -->    <property name="authenticator" ref="authenticator"></property>    <property name="realms">    <list>    <ref bean="jdbcRealm"/>    <ref bean="jdbcRealm2"/>    </list>    </property>    </bean>

现在改为realms有securityManager来进行管理。这样做为什么是可以的呢?我们来探个究竟吧。

首先我们想想该在哪里打个断点呢,首先是获取到realms,肯定有个setRealams来给realms来设置值吧。所以我们就在set方法这里设置一个断点。

AuthenticatingSecurityManager下面的方法:


这样就可以由securityManager来进行管理realms了。


0 0
原创粉丝点击