From 9409af9904900457621900f8e1178f317dc93913 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 10 七月 2025 11:17:04 +0800
Subject: [PATCH] 企业微信登录回调用户写入shiro

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java |    2 +-
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java |   14 +++++++++++---
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java
index 19fa754..31a137d 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java
@@ -9,6 +9,7 @@
 import me.zhyd.oauth.model.AuthResponse;
 import me.zhyd.oauth.request.AuthRequest;
 import me.zhyd.oauth.utils.AuthStateUtils;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.util.JwtUtil;
@@ -16,6 +17,7 @@
 import org.jeecg.common.util.RedisUtil;
 import org.jeecg.common.util.RestUtil;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.config.shiro.JwtToken;
 import org.jeecg.config.thirdapp.ThirdAppConfig;
 import org.jeecg.config.thirdapp.ThirdAppTypeItemVo;
 import org.jeecg.modules.base.service.BaseCommonService;
@@ -108,6 +110,9 @@
 				String sysUserId = user.getSysUserId();
 				SysUser sysUser = sysUserService.getById(sysUserId);
 				String token = saveToken(sysUser);
+				// 浣跨敤token杩涜Shiro鐧诲綍
+				JwtToken jwtToken = new JwtToken(token);
+				SecurityUtils.getSubject().login(jwtToken); // 姝よ浠g爜浼氳Е鍙慠ealm鐨勮璇佹柟娉曪紝灏嗙敤鎴蜂俊鎭瓨鍏hiro鐨勪細璇�
     			modelMap.addAttribute("token", token);
 			}else{
 				modelMap.addAttribute("token", "缁戝畾鎵嬫満鍙�,"+""+uuid);
@@ -303,7 +308,7 @@
 			// 浼佷笟鐨凜orpID
 			builder.append("?appid=").append(config.getClientId());
 			// 鎺堟潈鍚庨噸瀹氬悜鐨勫洖璋冮摼鎺ュ湴鍧�锛岃浣跨敤urlencode瀵归摼鎺ヨ繘琛屽鐞�
-			String redirectUri = RestUtil.getBaseUrl() + "/sys/thirdLogin/oauth2/wechat_enterprise/callback";
+			String redirectUri ="http://houjie.xalxzn.com:8866/jeecg-boot/sys/thirdLogin/oauth2/wechat_enterprise/callback";
 			builder.append("&redirect_uri=").append(URLEncoder.encode(redirectUri, "UTF-8"));
 			// 杩斿洖绫诲瀷锛屾鏃跺浐瀹氫负锛歝ode
 			builder.append("&response_type=code");
@@ -394,12 +399,15 @@
 			}
 
 			String token = saveToken(loginUser);
-			state += "/oauth2-app/login?oauth2LoginToken=" + URLEncoder.encode(token, "UTF-8");
+			// ============ 鏂板 Shiro 鐧诲綍閫昏緫 ============
+			JwtToken jwtToken = new JwtToken(token);
+			SecurityUtils.getSubject().login(jwtToken);
+			state += "/h5/oauth2-app/login?oauth2LoginToken=" + URLEncoder.encode(token, "UTF-8");
 			//update-begin---author:wangshuai ---date:20220613  for锛歔issues/I5BOUF]oauth2 閽夐拤鏃犳硶鐧诲綍------------
 			state += "&thirdType=" + source;
 			//state += "&thirdType=" + "wechat_enterprise";
 			if (redirect != null && redirect.length() > 0) {
-				state += "&redirect=" + redirect;
+				state += "&" + redirect;
 			}
 			//update-end-author:taoyan date:2022-6-30 for: 宸ヤ綔娴佸彂閫佹秷鎭� 鐐瑰嚮娑堟伅閾炬帴璺宠浆鍔炵悊椤甸潰
 
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
index c9f52a2..38be9f5 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
@@ -62,7 +62,7 @@
 	}
 
 	@Override
-	@Cacheable(value = CacheConstant.SYS_ENABLE_DICT_CACHE,key = "#code", unless = "#result == null ")
+	//@Cacheable(value = CacheConstant.SYS_ENABLE_DICT_CACHE,key = "#code", unless = "#result == null ")
 	public List<DictModel> queryEnableDictItemsByCode(String code) {
 		log.debug("鏃犵紦瀛榙ictCache鐨勬椂鍊欒皟鐢ㄨ繖閲岋紒");
 		return sysDictMapper.queryEnableDictItemsByCode(code);

--
Gitblit v1.9.3