shiro:实现权限缓存

shiro:实现权限缓存

shiro:实现权限缓存

最新推荐文章于 2022-03-21 16:56:58 发布

原创

最新推荐文章于 2022-03-21 16:56:58 发布

·

642 阅读

·

0

·

0

·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

文章标签:

#缓存

shiro

专栏收录该内容

9 篇文章

订阅专栏

本文介绍了如何在Spring Boot项目中,通过引入Apache Shiro和EhCache实现权限缓存,以提升系统性能。首先,添加Shiro和Spring Context Support的相关依赖。接着,配置EhCache Manager并设置缓存策略,确保在用户访问权限控制时,Shiro只进行一次权限验证并缓存结果。然后,配置Session Manager以设定session过期时间和管理无效session。最后,提供了ehcache-shiro.xml配置文件,详细配置了缓存的参数,如最大内存元素数量、硬盘缓存、过期策略等。通过这种方式,可以有效地减少数据库查询,提高系统的响应速度。

摘要生成于

C知道

,由 DeepSeek-R1 满血版支持,

前往体验 >

shiro:实现权限缓存

1.添加依赖

org.apache.shiro

shiro-ehcache

1.4.0

org.springframework

spring-context-support

2. 注入缓存

/**

* 不指定名字的话,自动创建一个方法名第一个字母小写的bean

* @Bean(name = "cacheManager")

* shiro缓存对象,防止当每次访问带权限的请求时,shiro都去执行权限认证,进行查询权限

* 也就是说,只需给shiro一次权限即可(缓存),不需要每次查询权限

* @return

*/

@Bean

public EhCacheManager cacheManager() {

EhCacheManager cacheManager = new EhCacheManager();

cacheManager.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");

return cacheManager;

}

@Bean("sessionManager")

public SessionManager sessionManager(){

DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();

//设置session过期时间

sessionManager.setGlobalSessionTimeout(60 * 60 * 1000);

//定期验证session

sessionManager.setSessionValidationSchedulerEnabled(true);

//删除无效session

sessionManager.setDeleteInvalidSessions(true);

// 去掉shiro登录时url里的JSESSIONID

sessionManager.setSessionIdUrlRewritingEnabled(false);

if (this.connectionFactory() != null){

//设置sessionDAO

sessionManager.setSessionDAO(sessionDAO());

if (sessionListeners != null && !sessionListeners.isEmpty()) {

sessionManager.setSessionListeners(sessionListeners);

}

sessionManager.setSessionIdCookieEnabled(true);

}else {

//这里俩种方式选择一种

sessionManager.setCacheManager(cacheManager());

}

return sessionManager;

}

3. 添加配置文件

在src/main/resouces中添加ehcache-shiro.xml配置文件:

maxElementsInMemory="100000"

eternal="false"

overflowToDisk="true"

timeToIdleSeconds="0"

timeToLiveSeconds="0"

diskPersistent="false"

diskExpiryThreadIntervalSeconds="120"/>

黄金推荐

天极下载站:天极下载站【mydown.yesky.com】属于天极网旗下
金星为什么没人敢惹 金星的说话技巧
新日博365

金星为什么没人敢惹 金星的说话技巧

✨ 07-16 💎 价值: 2833
母乳|餵母乳不能吃什麼?如何儲存?要餵多久?餵哺母乳10大常見問題合集