两套单点登录+两套系统待办跳转bug修复6

This commit is contained in:
wenlukang1 2025-07-04 10:40:12 +08:00
parent 2de9dc5c09
commit e2b61901db
1 changed files with 15 additions and 12 deletions

View File

@ -42,29 +42,31 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
String client; String client;
String secret; String secret;
String queryUrlOld = httpServletRequest.getQueryString(); 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; ip = EOSS_IP2;
client = CLIENT_ID2; client = CLIENT_ID2;
secret = CLIENT_SECRET2; 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 { } else {
ip = EOSS_IP; ip = EOSS_IP;
client = CLIENT_ID; client = CLIENT_ID;
secret = CLIENT_SECRET; 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)); 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)); logger.info(String.format("callTrdSSOLogin→redirect%s", redirect));
if (queryUrlOld.contains("code")) {
return;
}
String ssoUrl; String ssoUrl;
try { try {
logger.info(String.format("callTrdSSOLogin→true/false%s", queryUrlOld.contains("wf_approvalpage")));
//退出系统 //退出系统
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");
@ -99,7 +101,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
String secret; String secret;
String queryUrlOld = httpServletRequest.getQueryString(); String queryUrlOld = httpServletRequest.getQueryString();
logger.info(String.format("getTrdSSOAuth→queryUrlOld%s", queryUrlOld)); logger.info(String.format("getTrdSSOAuth→queryUrlOld%s", queryUrlOld));
if (queryUrlOld.contains("isNew")) { if (StringUtils.isNotEmpty(queryUrlOld) && queryUrlOld.contains("isNew")) {
ip = EOSS_IP2; ip = EOSS_IP2;
client = CLIENT_ID2; client = CLIENT_ID2;
secret = CLIENT_SECRET2; secret = CLIENT_SECRET2;
@ -120,6 +122,7 @@ 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(); String requestURI = httpServletRequest.getRequestURI();
logger.info(String.format("getTrdSSOAuth→sessionId%s", sessionId)); logger.info(String.format("getTrdSSOAuth→sessionId%s", sessionId));
try { try {
@ -141,7 +144,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
logger.info(String.format("getTrdSSOAuth→sendRedirect异常%s", e)); logger.info(String.format("getTrdSSOAuth→sendRedirect异常%s", e));
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);