shiro缓存管理和session管理

发布时间:2025-01-08 15:45

平板清理缓存:设置-存储-应用管理-选择应用清理缓存 #生活技巧# #数码产品使用技巧# #平板电脑操作指南#

最新推荐文章于 2024-10-23 17:25:56 发布

m0_38053538 于 2018-05-24 10:22:35 发布

shiro中提供了对认证和授权的缓存,shiro是默认开始授权缓存而关闭认证缓存的

在SecurityManager中需要这个参数

项目一

  <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">      <property name="realm" ref="systemAuthorizingRealm" />      <property name="sessionManager" ref="sessionManager" />      <property name="cacheManager" ref="shiroCacheManager" />  </bean>  

项目二

  <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">          <property name="realm" ref="customRealm" />                    <property name="cacheManager" ref="cacheManager"/>                    <property name="sessionManager" ref="sessionManager" />                    <property name="rememberMeManager" ref="rememberMeManager"/>                </bean>  

可以使用不同的缓存

cacheManager

  <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">          <property name="cacheManagerConfigFile" value="classpath:shiro-ehcache.xml"/>      </bean>  

redis

<bean id="shiroCacheManager" class="com.minstone.common.security.shiro.cache.RedisCacheManager">      <property name="redisManager" ref="redisManager" />  </bean>  

redisManager 就是一个简单的数据库连接

<bean id="redisManager" class="com.minstone.common.utils.redis.RedisManager">           <property name="jedisPoolConfig" ref="jedisPoolConfig"></property>            <property name="host" value="${redis.host}"></property>            <property name="port" value="${redis.port}"></property>            <property name="timeout" value="${redis.timeout}"></property>            <property name="usePool" value="${redis.usePool}"></property>            <property name="password" value="${redis.password}"></property>  </bean>  

缓存清空

如果用户正常退出 缓存清空

如果用户非正常退出比如关闭浏览器 缓存清空

如果session到期,缓存清空,设置一般在缓存的配置文件中

如果修改了用户的权限,而用户不退出系统,修改的权限不会生效,需要手动调用realm的clearCache方法清除

public void clearCached() {      PrincipalCollection principals = SecurityUtils.getSubject().getPrincipals();      super.clearCache(principals);  }  

redis

public static void remove(String cacheName, String key) {  /       getCache(cacheName).remove(key);      RedisUtils.removeCache(key);  }   public static void removeCache(String key){  /       LOGGER.debug("根据key从redis中删除对象 key [" + key + "]");      cacheManager.del(key.getBytes());  }  

注意 这些方法一般情况下修改用户权限都是在Service当中所以应该在service中调用清空缓存的方法

还可以在SecurityManager中配置Sessionmanager,配制方法增加property属性

  <bean id="sessionManager" class="com.common.security.shiro.session.SessionManager">       <property name="sessionDAO" ref="sessionDAO"/>                  <property name="globalSessionTimeout" value="${session.sessionTimeout}"/>                  <property name="sessionValidationInterval" value="${session.sessionTimeoutClean}"/>  lt;!--          <property name="sessionValidationSchedulerEnabled" value="false"/> -->          <property name="sessionValidationSchedulerEnabled" value="true"/>                <property name="sessionIdCookie" ref="sessionIdCookie"/>      <property name="sessionIdCookieEnabled" value="true"/>  </bean>  
      <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">                    <property name="globalSessionTimeout" value="600000"/>                    <property name="deleteInvalidSessions" value="true"/>      </bean>  

shiro管理session,shiro提供了sessionDao操作

  <bean id="sessionDAO" class="com.minstone.common.security.shiro.session.CacheSessionDAO">      <property name="sessionIdGenerator" ref="idGen" />      <property name="activeSessionsCacheName" value="activeSessionsCache" />      <property name="cacheManager" ref="shiroCacheManager" />   </bean>  转载地址:https://blog.csdn.net/oppoppoppo/article/details/53432202

网址:shiro缓存管理和session管理 https://www.yuejiaxmz.com/news/view/670532

相关内容

shrio 权限管理filterChainDefinitions过滤器配置
Session生命週期範例
内存管理 浅析 内存管理/内存优化技巧
个体心理压力的管理和缓解课件.ppt
情绪管理和压力缓解专家讲座.ppt
职场人的思想管理、态度管理、情绪管理、时间管理和生活管理!.doc
食品储存管理管理制度
操作系统——内存管理(一文搞懂操作系统的内存管理)
压力管理及舒缓.doc
情绪管理与压力调节培训.doc

随便看看