两套单点登录+两套系统待办跳转bug修复5
This commit is contained in:
parent
5305ef9c68
commit
2de9dc5c09
|
@ -41,7 +41,6 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
String ip;
|
String ip;
|
||||||
String client;
|
String client;
|
||||||
String secret;
|
String secret;
|
||||||
|
|
||||||
String queryUrlOld = httpServletRequest.getQueryString();
|
String queryUrlOld = httpServletRequest.getQueryString();
|
||||||
if (queryUrlOld.contains("isNew")) {
|
if (queryUrlOld.contains("isNew")) {
|
||||||
ip = EOSS_IP2;
|
ip = EOSS_IP2;
|
||||||
|
@ -56,6 +55,8 @@ 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;
|
||||||
|
// String redirect = "http://127.0.0.1:8881/ierp" + "/index.html?param=" + queryUrlNew;
|
||||||
|
|
||||||
logger.info(String.format("callTrdSSOLogin→redirect:%s", redirect));
|
logger.info(String.format("callTrdSSOLogin→redirect:%s", redirect));
|
||||||
if (queryUrlOld.contains("code")) {
|
if (queryUrlOld.contains("code")) {
|
||||||
return;
|
return;
|
||||||
|
@ -96,7 +97,9 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
String ip;
|
String ip;
|
||||||
String client;
|
String client;
|
||||||
String secret;
|
String secret;
|
||||||
if (httpServletRequest.getQueryString().contains("isNew")) {
|
String queryUrlOld = httpServletRequest.getQueryString();
|
||||||
|
logger.info(String.format("getTrdSSOAuth→queryUrlOld:%s", queryUrlOld));
|
||||||
|
if (queryUrlOld.contains("isNew")) {
|
||||||
ip = EOSS_IP2;
|
ip = EOSS_IP2;
|
||||||
client = CLIENT_ID2;
|
client = CLIENT_ID2;
|
||||||
secret = CLIENT_SECRET2;
|
secret = CLIENT_SECRET2;
|
||||||
|
@ -117,18 +120,26 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
|
||||||
String param = httpServletRequest.getParameter("param");
|
String param = httpServletRequest.getParameter("param");
|
||||||
//获取返回的 sessionId
|
//获取返回的 sessionId
|
||||||
String sessionId = httpServletRequest.getParameter("sessionId");
|
String sessionId = httpServletRequest.getParameter("sessionId");
|
||||||
|
String requestURI = httpServletRequest.getRequestURI();
|
||||||
logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId));
|
logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId));
|
||||||
//解码
|
try {
|
||||||
if (StringUtils.isNotEmpty(param)) {
|
//如果直接携带了code与session,并且未通过加密成param,需要去除session参数,并将其key替换为eossSessionId即可
|
||||||
byte[] decodedBytes = Base64.getDecoder().decode(param);
|
if (StringUtils.isNotEmpty(code) && StringUtils.isNotEmpty(sessionId) && StringUtils.isEmpty(param)){
|
||||||
String paramString = new String(decodedBytes, StandardCharsets.UTF_8);
|
String replace = queryUrlOld.replace("sessionId", "eossSessionId");
|
||||||
//二次重定向到待办页面,并且修改EOSS返回的sessionId的key值
|
httpServletResponse.sendRedirect(requestURI+"?"+replace);
|
||||||
try {
|
logger.info(String.format("getTrdSSOAuth→sendRedirect:%s", replace));
|
||||||
httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code + "&eossSessionId=" + sessionId);
|
|
||||||
} catch (IOException e) {
|
|
||||||
logger.info(String.format("getTrdSSOAuth→sendRedirect异常:%s", httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code + "&eossSessionId=" + sessionId));
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
|
//携带了code,并且加密成param,解密param,并重定向进入司库
|
||||||
|
else if (StringUtils.isNotEmpty(param)) {
|
||||||
|
//解码
|
||||||
|
byte[] decodedBytes = Base64.getDecoder().decode(param);
|
||||||
|
String queryUrlNew = new String(decodedBytes, StandardCharsets.UTF_8);
|
||||||
|
httpServletResponse.sendRedirect(requestURI + "?" + queryUrlNew + "&code=" + code + "&eossSessionId=" + sessionId);
|
||||||
|
logger.info(String.format("getTrdSSOAuth→sendRedirect:%s", 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)) {
|
if (StringUtils.isNotEmpty(code) && StringUtils.isEmpty(sessionId)) {
|
||||||
|
|
Loading…
Reference in New Issue