From ea9c33ab8ef00dd1611f2ed1ed9d331909e53a9f Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 01 四月 2026 17:39:00 +0800
Subject: [PATCH] 【丽水】单点登录
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
index 80f4e66..1338a84 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.utils.OkHttpExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
@@ -88,6 +89,9 @@
private TokenService tokenService;
@Autowired
+ private SysLoginService loginService;
+
+ @Autowired
private ISysConfigService sysConfigService;
private final RestTemplate restTemplate;
@@ -145,35 +149,46 @@
// 閲嶅畾鍚戝湴鍧�瀵硅薄(閲嶅畾鍚戝湴鍧�
RedirectView redirectView = new RedirectView();
try {
- SSOTokenResponse accessToken = getAccessTokenLyra(code, accessTokenUrl, clientId, redirectUri, clientSecret,true);
+ SSOTokenResponse accessToken = getAccessTokenLyra(code, accessTokenUrl, clientId, clientSecret, redirectUri,true);
log.info("鑾峰彇鍒扮殑token锛�" + accessToken);
SSOUserInfo userInfo = getUserInfoLyra(accessToken.getAccess_token(), userInfoUrl,true);
log.info("鑾峰彇鍒扮殑鐢ㄦ埛淇℃伅锛�" + userInfo);
- createLocalSession(userInfo);
+// createLocalSession(userInfo);
if (StringUtils.isEmpty(path)) {
throw new BaseException("璇烽厤缃墠绔湴鍧�");
}
- String reviewUrl = "";
- reviewUrl = UriComponentsBuilder.fromHttpUrl(path)
- .path("/loginSSO")
- .queryParam("token", accessToken.getAccess_token())
- .queryParam("orgid", userInfo.getZuZhiJGID())
- .queryParam("orgname", userInfo.getZuZhiJGMC())
- .queryParam("ZuHuID", userInfo.getYongHuID())
- .queryParam("deptCode", "null")
- .build()
- .toUriString();
- log.info("鍗曠偣鐧婚檰閲嶅畾鍚戝湴鍧�涓猴細{}", reviewUrl);
- redirectView.setUrl(reviewUrl);
- redirectView.setStatusCode(HttpStatus.FOUND);
+ String userName = userInfo.getZhiGongID();
+ String orgid = userInfo.getZuZhiJGID();
+ String campusid = "1";
+ String deptId = null;
+ String token = null;
+ log.info("銆怱SO鐧诲綍銆戣幏鍙栫敤鎴稵oken鍙傛暟锛�" + userInfo);
+ String loginToken = loginService.ssoLogin(userName, orgid, deptId, campusid, token);
+ if (StringUtils.isEmpty(loginToken)) {
+ log.error("銆怱SO鐧诲綍銆戠櫥褰曞け璐ワ紝userName={}, orgid={}", userName, orgid);
+ return buildRedirect(path + "/login");
+ }
+
+ String redirectUrl = path + "/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&orgname=null&ZuHuID=null&deptCode=null";
+ log.info("銆怱SO鐧诲綍銆戦噸瀹氬悜鍦板潃锛歿}", redirectUrl);
+ return buildRedirect(redirectUrl);
+
} catch (Exception e) {
log.error("SSO鐧诲綍澶辫触", e);
redirectView.setUrl(path + "/login?error=sso_failed");
return redirectView;
}
+ }
+ /**
+ * 鏋勫缓閲嶅畾鍚戣鍥�
+ */
+ private RedirectView buildRedirect(String url) {
+ RedirectView redirectView = new RedirectView();
+ redirectView.setUrl(url);
+ redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
return redirectView;
}
--
Gitblit v1.9.3