From 16772c5dc27772c2eee57d2eab061ad15e8ad87e Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 29 二月 2024 11:43:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java | 46 +++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index edfd770..b785683 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -4,14 +4,19 @@
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.io.Serializable;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -39,6 +44,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();
@@ -50,12 +69,16 @@
public SessionManager sessionManager() {
ShiroSessionManager sessionManager = new ShiroSessionManager();
sessionManager.setSessionDAO(shiroSessionDAO);
+ sessionManager.setGlobalSessionTimeout(sessionExpireTime*1000);
+ // 鍒犻櫎澶辨晥鐨剆ession
+ sessionManager.setDeleteInvalidSessions(true);
return sessionManager;
}
@Bean
public SecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+ ThreadContext.bind(securityManager);//鍔犱笂杩欏彞浠g爜鎵嬪姩缁戝畾
securityManager.setRealm(shiroRealm);
securityManager.setSessionManager(this.sessionManager());
securityManager.setCacheManager(shiroCacheManager);
@@ -66,20 +89,33 @@
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
- Map<String, String> map = new HashMap<>();
+ Map<String, String> map = new LinkedHashMap<>();
// 璺緞鎷︽埅閰嶇疆
map.put("/system/login", "anon");
+ map.put("/system/syncLingCountData", "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("/public/**", "anon");
-
+ map.put("/statistics/**", "anon");
+ map.put("/business/hksync/push/**", "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("/lingyang/importBatch", "anon");
+ map.put("/edgp/**", "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");
- map.put("/wgListener/**", "anon");
// - 鍏朵粬鎺ュ彛缁熶竴鎷︽埅
map.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
--
Gitblit v1.9.3