From e2b61901db571b32712e7a2194bd88dfad1060ca Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Fri, 4 Jul 2025 10:40:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=A4=E5=A5=97=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95+=E4=B8=A4=E5=A5=97=E7=B3=BB=E7=BB=9F=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E8=B7=B3=E8=BD=ACbug=E4=BF=AE=E5=A4=8D6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index 4d34d2f..d1fdfc9 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -42,29 +42,31 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String client; String secret; String queryUrlOld = httpServletRequest.getQueryString(); - if (queryUrlOld.contains("isNew")) { + //有code无需再次获取code,直接结束 + if (queryUrlOld.contains("code")) { + return; + } + String redirect; + //携带参数加密,无参数直接跳转到首页 + if (StringUtils.isNotEmpty(queryUrlOld) && queryUrlOld.contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; secret = CLIENT_SECRET2; + logger.info(String.format("callTrdSSOLogin→queryUrlOld:%s", queryUrlOld)); + String queryUrlNew = Base64.getEncoder().encodeToString(queryUrlOld.getBytes(StandardCharsets.UTF_8)); + redirect = skIP + "/index.html?param=" + queryUrlNew; } else { ip = EOSS_IP; client = CLIENT_ID; secret = CLIENT_SECRET; + redirect = s; } - logger.info(String.format("callTrdSSOLogin→queryUrlOld:%s", queryUrlOld)); logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); - String queryUrlNew = Base64.getEncoder().encodeToString(queryUrlOld.getBytes(StandardCharsets.UTF_8)); - String redirect = skIP + "/index.html?param=" + queryUrlNew; -// String redirect = "http://127.0.0.1:8881/ierp" + "/index.html?param=" + queryUrlNew; - logger.info(String.format("callTrdSSOLogin→redirect:%s", redirect)); - if (queryUrlOld.contains("code")) { - return; - } + String ssoUrl; try { - logger.info(String.format("callTrdSSOLogin→true/false:%s", queryUrlOld.contains("wf_approvalpage"))); //退出系统 if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) { String userName = UserServiceHelper.getCurrentUser("name").getString("name"); @@ -99,7 +101,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String secret; String queryUrlOld = httpServletRequest.getQueryString(); logger.info(String.format("getTrdSSOAuth→queryUrlOld:%s", queryUrlOld)); - if (queryUrlOld.contains("isNew")) { + if (StringUtils.isNotEmpty(queryUrlOld) && queryUrlOld.contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; secret = CLIENT_SECRET2; @@ -120,6 +122,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String param = httpServletRequest.getParameter("param"); //获取返回的 sessionId String sessionId = httpServletRequest.getParameter("sessionId"); + String requestURI = httpServletRequest.getRequestURI(); logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId)); try { @@ -141,7 +144,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { logger.info(String.format("getTrdSSOAuth→sendRedirect异常:%s", e)); throw new RuntimeException(e); } - //二次重定向进入 + //二次重定向进入才进行用户认证 if (StringUtils.isNotEmpty(code) && StringUtils.isEmpty(sessionId)) { //调用EOSS获取token接口 String access_token = AuthService.accessToken(code, ip, client, secret);