两套单点登录+两套系统待办跳转bug修复4
This commit is contained in:
parent
308edcc188
commit
5305ef9c68
|
@ -56,25 +56,14 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s));
|
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 queryUrlNew = Base64.getEncoder().encodeToString(queryUrlOld.getBytes(StandardCharsets.UTF_8));
|
||||||
String redirect = skIP + "/index.html?param=" + queryUrlNew;
|
String redirect = skIP + "/index.html?param=" + queryUrlNew;
|
||||||
logger.info(String.format("callTrdSSOLogin→redirect:%s", queryUrlOld));
|
logger.info(String.format("callTrdSSOLogin→redirect:%s", redirect));
|
||||||
if(queryUrlOld.contains("code")){
|
if (queryUrlOld.contains("code")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String ssourl;
|
String ssoUrl;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
logger.info(String.format("callTrdSSOLogin→true/false:%s", queryUrlOld.contains("wf_approvalpage")));
|
logger.info(String.format("callTrdSSOLogin→true/false:%s", queryUrlOld.contains("wf_approvalpage")));
|
||||||
//非待办登录到首页
|
|
||||||
if (queryUrlOld.contains("wf_approvalpage")) {
|
|
||||||
//待办跳转相关逻辑处理
|
|
||||||
logger.info("callTrdSSOLogin→skip:" + redirect);
|
|
||||||
//重定向的统一认证的地址 获取授权码
|
|
||||||
ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=true&authType=0&redirect_uri=%s",
|
|
||||||
ip, client, redirect);
|
|
||||||
} 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, redirect);
|
|
||||||
//退出系统
|
//退出系统
|
||||||
if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) {
|
if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) {
|
||||||
String userName = UserServiceHelper.getCurrentUser("name").getString("name");
|
String userName = UserServiceHelper.getCurrentUser("name").getString("name");
|
||||||
|
@ -85,11 +74,14 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
AuthService.logout(ip, sessionId);
|
AuthService.logout(ip, sessionId);
|
||||||
}
|
}
|
||||||
//退出系统跳转到eoss登录页
|
//退出系统跳转到eoss登录页
|
||||||
ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html";
|
ssoUrl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html";
|
||||||
|
} 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, redirect);
|
||||||
}
|
}
|
||||||
}
|
logger.info(String.format("callTrdSSOLogin→→sendRedirect:%s", ssoUrl));
|
||||||
logger.info(String.format("callTrdSSOLogin→→sendRedirect:%s", ssourl));
|
httpServletResponse.sendRedirect(ssoUrl);
|
||||||
httpServletResponse.sendRedirect(ssourl);
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
@ -127,19 +119,19 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
String sessionId = httpServletRequest.getParameter("sessionId");
|
String sessionId = httpServletRequest.getParameter("sessionId");
|
||||||
logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId));
|
logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId));
|
||||||
//解码
|
//解码
|
||||||
if(StringUtils.isNotEmpty(param) ){
|
if (StringUtils.isNotEmpty(param)) {
|
||||||
byte[] decodedBytes = Base64.getDecoder().decode(param);
|
byte[] decodedBytes = Base64.getDecoder().decode(param);
|
||||||
String paramString = new String(decodedBytes, StandardCharsets.UTF_8);
|
String paramString = new String(decodedBytes, StandardCharsets.UTF_8);
|
||||||
//二次重定向到待办页面,并且修改EOSS返回的sessionId的key值
|
//二次重定向到待办页面,并且修改EOSS返回的sessionId的key值
|
||||||
try {
|
try {
|
||||||
httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code+"&eossSessionId="+sessionId);
|
httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code + "&eossSessionId=" + sessionId);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.info(String.format("getTrdSSOAuth→sendRedirect异常:%s", httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code+"&eossSessionId="+sessionId));
|
logger.info(String.format("getTrdSSOAuth→sendRedirect异常:%s", httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code + "&eossSessionId=" + sessionId));
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//二次重定向进入
|
//二次重定向进入
|
||||||
if (StringUtils.isNotEmpty(code) && StringUtils.isEmpty(sessionId) ) {
|
if (StringUtils.isNotEmpty(code) && StringUtils.isEmpty(sessionId)) {
|
||||||
//调用EOSS获取token接口
|
//调用EOSS获取token接口
|
||||||
String access_token = AuthService.accessToken(code, ip, client, secret);
|
String access_token = AuthService.accessToken(code, ip, client, secret);
|
||||||
logger.info(String.format("getTrdSSOAuth→accessToken返回数据:%s", access_token));
|
logger.info(String.format("getTrdSSOAuth→accessToken返回数据:%s", access_token));
|
||||||
|
@ -155,7 +147,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
result.setUser(user);
|
result.setUser(user);
|
||||||
result.setSucess(true);
|
result.setSucess(true);
|
||||||
logger.info("SSO用户登录成功,进入苍穹系统");
|
logger.info("SSO用户登录成功,进入苍穹系统");
|
||||||
}else{
|
} else {
|
||||||
result.setSucess(false);
|
result.setSucess(false);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue