From 7396f1b61c80d13aefb42305c2db6b0c93bbe56e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 05 九月 2023 14:04:52 +0800
Subject: [PATCH] 框架整理

---
 server/src/main/java/com/doumee/config/shiro/ShiroConfig.java |   46 +++++++++++++++++++++++-----------------------
 1 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/server/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index 9765736..6422760 100644
--- a/server/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -1,6 +1,5 @@
 package com.doumee.config.shiro;
 
-import org.apache.coyote.http11.AbstractHttp11Protocol;
 import org.apache.shiro.mgt.SecurityManager;
 import org.apache.shiro.session.mgt.SessionManager;
 import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
@@ -9,21 +8,21 @@
 import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
 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 2023/02/14 11:14
+ * @date 2023/04/17 12:11
  */
 @Configuration
 public class ShiroConfig {
@@ -43,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() {
         DefaultAdvisorAutoProxyCreator autoProxyCreator = new DefaultAdvisorAutoProxyCreator();
@@ -54,6 +67,9 @@
     public SessionManager sessionManager() {
         ShiroSessionManager sessionManager = new ShiroSessionManager();
         sessionManager.setSessionDAO(shiroSessionDAO);
+        sessionManager.setGlobalSessionTimeout(sessionExpireTime*1000);
+        // 鍒犻櫎澶辨晥鐨剆ession
+        sessionManager.setDeleteInvalidSessions(true);
         return sessionManager;
     }
 
@@ -71,6 +87,7 @@
         ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
         shiroFilterFactoryBean.setSecurityManager(securityManager);
         Map<String, String> map = new LinkedHashMap<>();
+        // 璺緞鎷︽埅閰嶇疆
         // 璺緞鎷︽埅閰嶇疆
         map.put("/system/dictData/companyUserRules","anon");
         map.put("/system/login", "anon");
@@ -121,22 +138,5 @@
     public ShiroRealm getShiroRealm () {
         shiroRealm.setCredentialsMatcher(shiroCredentialsMatcher);
         return shiroRealm;
-    }
-
-    private int maxUploadSizeInMb = 10 * 1024 * 1024; // 10 MB
-
-    @Bean
-    public TomcatServletWebServerFactory tomcatEmbedded() {
-
-        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
-        tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
-            // connector other settings...
-            // configure maxSwallowSize
-            if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
-                // -1 means unlimited, accept bytes
-                ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
-            }
-        });
-        return tomcat;
     }
 }

--
Gitblit v1.9.3