新oa待办跳转到待办页面bug修复11

This commit is contained in:
wenlukang1 2025-07-01 11:19:59 +08:00
parent 4593cbc091
commit f6e44f6f7d
1 changed files with 31 additions and 30 deletions

View File

@ -119,40 +119,41 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler {
result.setSucess(false); result.setSucess(false);
return result; return result;
} }
String param = httpServletRequest.getParameter("param"); String param = httpServletRequest.getParameter("param");
//获取返回的 sessionId
String sessionId = httpServletRequest.getParameter("sessionId");
logger.info(String.format("getTrdSSOAuth→sessionId%s", sessionId));
//解码 //解码
byte[] decodedBytes = Base64.getDecoder().decode(param); if(StringUtils.isNotEmpty(param) ){
String paramString = new String(decodedBytes, StandardCharsets.UTF_8); byte[] decodedBytes = Base64.getDecoder().decode(param);
try { String paramString = new String(decodedBytes, StandardCharsets.UTF_8);
//获取返回的 sessionId
String sessionId = httpServletRequest.getParameter("sessionId");
logger.info(String.format("getTrdSSOAuth→sessionId%s", sessionId));
//二次重定向到待办页面并且修改EOSS返回的sessionId的key值 //二次重定向到待办页面并且修改EOSS返回的sessionId的key值
httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code+"&eossSessionId="+sessionId); try {
//二次重定向进入解 httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code+"&eossSessionId="+sessionId);
if (StringUtils.isNotEmpty(code) && sessionId == null) { } catch (IOException e) {
//调用EOSS获取token接口 logger.info(String.format("getTrdSSOAuth→sendRedirect异常%s", httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code+"&eossSessionId="+sessionId));
String access_token = AuthService.accessToken(code, ip, client, secret); throw new RuntimeException(e);
logger.info(String.format("getTrdSSOAuth→accessToken返回数据%s", access_token));
//调用EOSS获取用户信息接口
String user = AuthService.getUserInfo(access_token, ip, client, secret);
logger.info(String.format("getTrdSSOAuth→getUserInfo返回数据%s", user));
String userKey = "user_sessionId_" + user;
//存储sessionId用于退出系统
DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion");
cache.put(userKey, httpServletRequest.getParameter("eossSessionId"));
//当前返回类型手机用户名email工号
result.setUserType(UserProperType.UserName);
result.setUser(user);
result.setSucess(true);
logger.info("SSO用户登录成功进入苍穹系统");
}else{
result.setSucess(false);
} }
} catch (IOException e) { }
logger.error("二次重定向到待办页面异常!" + e.getMessage()); //二次重定向进入解
throw new RuntimeException(e); if (StringUtils.isNotEmpty(code) && StringUtils.isNotEmpty(sessionId) ) {
//调用EOSS获取token接口
String access_token = AuthService.accessToken(code, ip, client, secret);
logger.info(String.format("getTrdSSOAuth→accessToken返回数据%s", access_token));
//调用EOSS获取用户信息接口
String user = AuthService.getUserInfo(access_token, ip, client, secret);
logger.info(String.format("getTrdSSOAuth→getUserInfo返回数据%s", user));
String userKey = "user_sessionId_" + user;
//存储sessionId用于退出系统
DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion");
cache.put(userKey, httpServletRequest.getParameter("eossSessionId"));
//当前返回类型手机用户名email工号
result.setUserType(UserProperType.UserName);
result.setUser(user);
result.setSucess(true);
logger.info("SSO用户登录成功进入苍穹系统");
}else{
result.setSucess(false);
} }
return result; return result;
} }