From 1812198cdb63b5b9da27c20e5606343b7ba73091 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 29 八月 2023 11:47:33 +0800 Subject: [PATCH] redis缓存session --- server/src/main/java/doumeemes/config/shiro/ShiroConfig.java | 45 ++++++++++++++++++++++++++------------------- 1 files changed, 26 insertions(+), 19 deletions(-) diff --git a/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java b/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java index e3cc18e..a234c9b 100644 --- a/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java +++ b/server/src/main/java/doumeemes/config/shiro/ShiroConfig.java @@ -1,28 +1,31 @@ package doumeemes.config.shiro; +import doumeemes.task.ScheduleTool; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.session.mgt.SessionManager; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; -import org.apache.shiro.util.ThreadContext; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.StringRedisSerializer; import javax.servlet.Filter; -import java.util.HashMap; +import java.io.Serializable; import java.util.LinkedHashMap; import java.util.Map; /** * Shiro閰嶇疆 * @author Eva.Caesar Liu - * @date 2022/04/18 18:12 + * @date 2023/04/17 12:11 */ -//@Configuration +@Configuration public class ShiroConfig { @Value("${cache.session.expire}") @@ -39,6 +42,20 @@ @Autowired private ShiroRealm shiroRealm; + + @Bean("sessionRedisTemplate") + public RedisTemplate<Object, Serializable> sessionRedisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate<Object, Serializable> redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory); + // 榛樿搴忓垪鍖栨柟寮� + redisTemplate.setDefaultSerializer(new StringRedisSerializer()); + // 鍊煎簭鍒楀寲鏂瑰紡 + ShiroSessionSerializer serializer = new ShiroSessionSerializer(); + redisTemplate.setValueSerializer(serializer); + redisTemplate.setHashValueSerializer(serializer); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } @Bean public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() { @@ -60,7 +77,6 @@ securityManager.setRealm(shiroRealm); securityManager.setSessionManager(this.sessionManager()); securityManager.setCacheManager(shiroCacheManager); - ThreadContext.bind(securityManager); return securityManager; } @@ -70,26 +86,17 @@ shiroFilterFactoryBean.setSecurityManager(securityManager); Map<String, String> map = new LinkedHashMap<>(); // 璺緞鎷︽埅閰嶇疆 + map.put("/web/user/login", "anon"); + map.put("/public/uploadRichText", "anon"); map.put("/system/login", "anon"); - map.put("/system/wxLogin", "anon"); - map.put("/system/wxProgramLogin", "anon"); - map.put("/system/wxAccountLogin", "anon"); - map.put("/system/initCompany", "anon"); map.put("/system/logout", "anon"); map.put("/common/captcha", "anon"); - map.put("/statistics/**", "anon"); - map.put("/dingding/push", "anon"); -// map.put("/ext/workorderExt/freshStatistics", "anon"); - map.put("/dingding/jsapiTicket", "anon"); - map.put("/dingding/ddLogin", "anon"); - map.put("/dingding/getDingdingCorpId", "anon"); - map.put("/lingyang/login", "anon"); - map.put("/lingyang/loginDemo", "anon"); - map.put("/edgp/**", "anon"); + //鏀捐 scratch 鎺ュ彛 + map.put("/web/scratch/**", "anon"); + // - 鏀捐swagger map.put("/doc.html", "anon"); map.put("/webjars/**", "anon"); - map.put("/template/**", "anon"); map.put("/swagger-resources/**", "anon"); map.put("/v2/api-docs/**", "anon"); // - 鍏朵粬鎺ュ彛缁熶竴鎷︽埅 -- Gitblit v1.9.3