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