这个主要是关于之前的配置的一个补充:就是这样的配置:
<bean id="shiroSecurityFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- shiro 的核心安全接口 -->
<property name="securityManager" ref="securityManager" />
<!-- 要求登录时的链接 -->
<property name="loginUrl" value="/login" />
<!-- 登陆成功后要跳转的连接 -->
<property name="successUrl" value="/index" />
<!-- 未授权时要跳转的连接 -->
<property name="unauthorizedUrl" value="/index.jsp" />
<!-- 引用Shiro Filter -->
<property name="filters">
<map>
<entry key="authc" value-ref="myCaptchaFilter"/>
</map>
</property>
<!-- shiro 连接约束配置 -->
<property name="filterChainDefinitions">
<value>
/static/** = anon
/login = anon
/WEB-INF/views/login.jsp = anon
/user-permission = perms["staff"]
/* = authc
</value>
</property>
</bean>
<!-- 缓存管理器 使用Ehcache实现 -->
<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
<property name="cacheManagerConfigFile" value="classpath:ehcache.xml"/>
</bean>
<!-- 主要是为了注入SessionDAO -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionDAO" ref="sessionDAO"/>
</bean>
<!-- SessionDAO用shiro提供的默认实现 -->
<bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
<property name="activeSessionsCacheName" value="shiro-activeSessionCache"/>
<property name="cacheManager" ref="cacheManager" />
</bean>
<!-- 为了实现自己的用户权限 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="userRealm"/>
<property name="sessionManager" ref="sessionManager"/>
</bean>
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
</beans>