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);