diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/AuthService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/AuthService.java index b91958a..2ea8114 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/AuthService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/AuthService.java @@ -79,8 +79,8 @@ public class AuthService { logger.info(String.format("getUserInfo→返回结果:%s",jsonObject)); JSONObject obj = jsonObject.getJSONObject("data"); if (obj!=null){ - return obj.getString("loginName"); -// return obj.getString("phone"); +// return obj.getString("loginName"); + return obj.getString("phone"); } return null; } 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 fb7e1f8..2415627 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 @@ -39,66 +39,17 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { @Override public void callTrdSSOLogin(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String s) { logger.info(String.format("callTrdSSOLogin→httpServletRequest:%s", httpServletRequest)); - - logger.info("CLIENT_ID:{}\nCLIENT_SECRET:{}\nEOSS_IP:{}\nCLIENT_ID2:{}\nCLIENT_SECRET2:{}\nEOSS_IP2:{}\nskIP:{}", - CLIENT_ID, CLIENT_SECRET, EOSS_IP, CLIENT_ID2, CLIENT_SECRET2, EOSS_IP2, skIP); - String ip; - String client; - String secret; - String queryUrlOld = httpServletRequest.getQueryString(); - //有code无需再次获取code,直接结束 - if (queryUrlOld != null && queryUrlOld.contains("code") && queryUrlOld.contains("sessionId")) { - String replace = queryUrlOld.replace("sessionId", "eossSessionId"); - try { - logger.info(String.format("callTrdSSOLogin→sendRedirect:%s", httpServletRequest.getRequestURI() + "?" + replace)); - httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + replace); - } catch (IOException e) { - throw new RuntimeException(e); - } - 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("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); - logger.info(String.format("callTrdSSOLogin→redirect:%s", redirect)); - String ssoUrl; try { //退出系统 - if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) { - String userName = UserServiceHelper.getCurrentUser("phone").getString("phone"); DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); - String userKey = "user_sessionId_" + userName; // 构造存储sessionId的键 - String sessionId = cache.get(userKey); String isNew = cache.get("isNew"); - if (sessionId != null) { - AuthService.logout(ip, sessionId); - } - if (StringUtils.equals("true", isNew)) { - ip = EOSS_IP2; - } - //退出系统跳转到eoss登录页 - ssoUrl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; + if (StringUtils.equals("true", isNew)) { + ip = EOSS_IP2; } else { - //重定向到eoss统一认证的地址 获取授权码code - ssoUrl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=true&authType=0&redirect_uri=%s", - ip, client, URLEncoder.encode(redirect, "UTF-8")); + ip = EOSS_IP; } - logger.info(String.format("callTrdSSOLogin→sendRedirect:%s", ssoUrl)); - httpServletResponse.sendRedirect(ssoUrl); + httpServletResponse.sendRedirect(ip + "/service/SGE-project-sctz-master/pc/dist/login.html"); } catch (IOException e) { logger.info(String.format("callTrdSSOLogin→sendRedirect异常:%s", e)); throw new RuntimeException(e); @@ -117,7 +68,6 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String queryUrlOld = httpServletRequest.getQueryString(); logger.info(String.format("getTrdSSOAuth→queryUrlOld:%s", queryUrlOld)); DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); - if (StringUtils.isNotEmpty(queryUrlOld) && queryUrlOld.contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; @@ -136,34 +86,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { if (StringUtils.isEmpty(code)) { result.setSucess(false); return result; - } - String param = httpServletRequest.getParameter("param"); - //获取返回的 sessionId - String sessionId = httpServletRequest.getParameter("sessionId"); - - String requestURI = httpServletRequest.getRequestURI(); - logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId)); - try { - //如果直接携带了code与session,并且未通过加密成param,需要去除session参数,并将其key替换为eossSessionId即可 - if (StringUtils.isNotEmpty(code) && StringUtils.isNotEmpty(sessionId) && StringUtils.isEmpty(param)) { - String replace = queryUrlOld.replace("sessionId", "eossSessionId"); - logger.info(String.format("getTrdSSOAuth→sendRedirect:%s", replace)); - httpServletResponse.sendRedirect(requestURI + "?" + replace); - } - //携带了code,并且加密成param,解密param,并重定向进入司库 - else if (StringUtils.isNotEmpty(param)) { - //解码 - byte[] decodedBytes = Base64.getDecoder().decode(param); - String queryUrlNew = new String(decodedBytes, StandardCharsets.UTF_8); - logger.info(String.format("getTrdSSOAuth→sendRedirect:%s", requestURI + "?" + queryUrlNew + "&code=" + code + "&eossSessionId=" + sessionId)); - httpServletResponse.sendRedirect(requestURI + "?" + queryUrlNew + "&code=" + code + "&eossSessionId=" + sessionId); - } - } catch (IOException e) { - logger.info(String.format("getTrdSSOAuth→sendRedirect异常:%s", e)); - throw new RuntimeException(e); - } - //二次重定向进入才进行用户认证 - if (StringUtils.isNotEmpty(code) && StringUtils.isEmpty(sessionId)) { + } else { //调用EOSS获取token接口 String access_token = AuthService.accessToken(code, ip, client, secret); logger.info(String.format("getTrdSSOAuth→accessToken返回数据:%s", access_token)); @@ -176,13 +99,11 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { cache.put(userKey, httpServletRequest.getParameter("eossSessionId")); } //当前返回类型手机,用户名,email,工号 -// result.setUserType(UserProperType.Mobile); - result.setUserType(UserProperType.UserName); + result.setUserType(UserProperType.Mobile); +// result.setUserType(UserProperType.UserName); result.setUser(user); result.setSucess(true); logger.info("SSO用户登录成功,进入苍穹系统"); - } else { - result.setSucess(false); } return result; }