博主今天在做Shiro集成SpringMVC实现多Reamls的时候,报了No realms have been configured! One or more realms must be ……的错误,百度了很久,解决了这个bug,现在分享给大家:
在Spring的配置文件中:
如:
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="cacheManager" ref="cacheManager"/> <!--把authenticator配置成securityManager的一个属性--> <property name="authenticator" ref="authenticator"></property> <!--配置的realms属性是一个集合 ,ref执行每个集合--> <property name="realms"> <list> <ref bean="jdbcRealm"></ref> <ref bean="SecondRealm"></ref> </list> </property> </bean> <!--配置多个Realm 需要配置ModularRealmAuthenticator --> <bean id="authenticator" class="org.apache.shiro.authc.pam.ModularRealmAuthenticator"> <!--在 ModularRealmAuthenticator下面配置Shiro认证策略--> <property name="authenticationStrategy"> <bean class="org.apache.shiro.authc.pam.AllSuccessfulStrategy"></bean> </property> </bean>
解决办法就是:
<property name="authenticator" ref="authenticator"></property>
一定要在:
<property name="realms"> <list> <ref bean="jdbcRealm"></ref> <ref bean="SecondRealm"></ref> </list> </property>
前面,不然会报错,楼主之前就是没有注意这点犯的错误!希望对大家有帮助!