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