<!-- 设定shiro的权限管理器 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<!--设置自定义realm -->
<property name="realm" ref="monitorRealm" />
<!-- 设置缓存管理器 -->
<property name="cacheManager" ref="ehCacheManager" />
<!-- 有次设置才能使得将 认证 授权信息交给 上面的cachemanager来管理-->
<property name="sessionMode" value="native" />
<!-- 设置session管理器 -->
<property name="sessionManager" ref="sessionManager" />
<!-- 设置remember me 管理器 -->
<property name="rememberMeManager" ref="rememberMeManager"/>
</bean>
<!--自定义Realm 继承自AuthorizingRealm 加载用户信息和权限信息-->
<bean id="monitorRealm" class="main.com.essence.common.security.service.impl.MonitorRealmImpl"></bean>
<!-- shiro的session管理器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="globalSessionTimeout" value="50000"/>
<property name="deleteInvalidSessions" value="true"/>
<property name="sessionValidationSchedulerEnabled" value="true"/>
<property name="sessionValidationScheduler" ref="sessionValidationScheduler"/>
<property name="sessionDAO" ref="sessionDAO" />
</bean>
<!-- 会话验证调度器 -->
<bean id="sessionValidationScheduler" class="org.apache.shiro.session.mgt.quartz.QuartzSessionValidationScheduler">
<property name="sessionValidationInterval" value="1800000"/>
<property name="sessionManager" ref="sessionManager"/>
</bean>
<!-- shiro session由这个缓存来处理 -->
<bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
<property name="activeSessionsCacheName" value="shiro-activeSessionCache" />
</bean>
<bean id="ehCacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
<property name="cacheManager" ref="cacheManager"/>
<property name="cacheManagerConfigFile" value="classpath:/main/resources/ehcache.xml"/>
</bean>
在ehcache.xml中
<cache name="shiro-activeSessionCache"
maxElementsInMemory="3000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="30"
timeToLiveSeconds="30"
/>
<cache name="userCache"
maxElementsInMemory="10000"
eternal="true"
overflowToDisk="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
/>
<!-- shiro session由这个缓存来处理 -->
<bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
<property name="activeSessionsCacheName" value="shiro-activeSessionCache" />
</bean>中value=shiro-activeSessionCache 根本没作用啊 在ehcache.xml中配置的这个cache没起作用 反而是
<!-- shiro的session管理器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="globalSessionTimeout" value="50000"/>
<property name="deleteInvalidSessions" value="true"/>
<property name="sessionValidationSchedulerEnabled" value="true"/>
<property name="sessionValidationScheduler" ref="sessionValidationScheduler"/>
<property name="sessionDAO" ref="sessionDAO" />
</bean>中的设置失效时间起作用了.....
还有个问题就是我用cacheManager中取得userCache 可以取到,但是在xml中的配置是不起作用的 求大神们知道 在线等候..........................
楼主解决了吗?我也是同样的问题######。。。。。我的能用了,应该是修改的没有部署上去,所以那一段代码还是注释状态的。我删了项目重新导入了一个,取消掉注释的代码可以用了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。