terminal bug keeper
This commit is contained in:
parent
ee7c65e8d6
commit
31632aaf4b
@ -424,4 +424,8 @@ public class TerminalInfo {
|
|||||||
return tm.allNames();
|
return tm.allNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////专门用于切换ent、proj这个情况的
|
||||||
|
public static final String TEMP_SESSION_KEY = "__temp_switch_legacy_terminal__";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -240,23 +240,36 @@ public class ContextInfoBuilderAspect {
|
|||||||
contextInfo.setOuId(nullSafeParseLong(request.getHeader(AuthConstants.HEADER_OU_ID)));
|
contextInfo.setOuId(nullSafeParseLong(request.getHeader(AuthConstants.HEADER_OU_ID)));
|
||||||
contextInfo.setWorkspaceId(nullSafeParseLong(request.getHeader(AuthConstants.HEADER_WORKSPACE_ID)));
|
contextInfo.setWorkspaceId(nullSafeParseLong(request.getHeader(AuthConstants.HEADER_WORKSPACE_ID)));
|
||||||
|
|
||||||
String terminalHeader = request.getHeader(AuthConstants.HEADER_TERMINAL);
|
String terminal = retrieveTerminalByRequestAndSession(request);
|
||||||
String terminalSession = StpUtil.getLoginDevice();
|
|
||||||
String terminal = terminalHeader;
|
|
||||||
if (null == terminalHeader || "".equals(terminalHeader) || "0".equals(terminalHeader)) {
|
|
||||||
log.warn("请求缺少terminal header,token={}。暂时使用session中的补齐terminal={}。", contextInfo.getToken(),
|
|
||||||
terminalSession);
|
|
||||||
terminal = terminalSession;
|
|
||||||
} else if (!TerminalInfo.legacyEquals(terminalHeader, terminalSession)) {
|
|
||||||
log.warn("请求缺少terminal header与session中不一致,token={}。暂时使用request中的terminal={},session terminal={}",
|
|
||||||
contextInfo.getToken(), terminalHeader, terminalSession);
|
|
||||||
// terminal = terminalSession;
|
|
||||||
}
|
|
||||||
contextInfo.setTerminalInfo(new TerminalInfo(terminal));
|
contextInfo.setTerminalInfo(new TerminalInfo(terminal));
|
||||||
|
|
||||||
contextInfo.setVisitTo(request.getHeader(AuthConstants.VISIT_TO));
|
contextInfo.setVisitTo(request.getHeader(AuthConstants.VISIT_TO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String retrieveTerminalByRequestAndSession(HttpServletRequest request) {
|
||||||
|
String terminalHeader = request.getHeader(AuthConstants.HEADER_TERMINAL);
|
||||||
|
String terminalSession = StpUtil.getSession().getString(TerminalInfo.TEMP_SESSION_KEY);
|
||||||
|
if(null != terminalSession && !"".equals(terminalSession)) {
|
||||||
|
log.warn("stp.session里面放了临时的legacy terminal,看到这条信息,说明这个BUG还在。");
|
||||||
|
//只有一个地方会放内容到这个临时Key里,就是Perspective切换的时候。
|
||||||
|
//只要这个东西存在,就以此为准。
|
||||||
|
return terminalSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
String terminalLoginDevice = StpUtil.getLoginDevice();
|
||||||
|
if (null == terminalHeader || "".equals(terminalHeader) || "0".equals(terminalHeader)) {
|
||||||
|
log.warn("请求缺少terminal header,token={}。暂时使用LoginDevice中的补齐terminal={}。", request.getHeader(AuthConstants.HEADER_TOKEN),
|
||||||
|
terminalSession);
|
||||||
|
return terminalLoginDevice;
|
||||||
|
} else if (!TerminalInfo.legacyEquals(terminalHeader, terminalLoginDevice)) {
|
||||||
|
log.warn("请求缺少terminal header与LoginDevice中不一致,token={}。暂时使用request中的terminal={},LoginDevice terminal={}",
|
||||||
|
request.getHeader(AuthConstants.HEADER_TOKEN), terminalHeader, terminalLoginDevice);
|
||||||
|
// terminal = terminalSession;
|
||||||
|
return terminalHeader;
|
||||||
|
}
|
||||||
|
return terminalHeader;
|
||||||
|
}
|
||||||
|
|
||||||
public void buildUserInfo(ContextInfo contextInfo, String authResultJson) {
|
public void buildUserInfo(ContextInfo contextInfo, String authResultJson) {
|
||||||
log.info("buildUserInfo-->authResultJson:{},contextInfo:{}", authResultJson, JSONUtil.toJsonStr(contextInfo));
|
log.info("buildUserInfo-->authResultJson:{},contextInfo:{}", authResultJson, JSONUtil.toJsonStr(contextInfo));
|
||||||
UserInfo userInfo = new UserInfo();
|
UserInfo userInfo = new UserInfo();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user