beetlsql3-dev
Mlxa0324 2 years ago
parent 1b1e343a93
commit 097a23c4fa

@ -173,7 +173,7 @@ public class CustomErrorController extends AbstractErrorController {
} }
protected String getErrorMessage(Throwable ex) { protected String getErrorMessage(Throwable ex) {
if(ex instanceof PlatformException || ex instanceof IllegalArgumentException || ex instanceof BeetlSQLException if(ex instanceof RuntimeException || ex instanceof PlatformException || ex instanceof IllegalArgumentException || ex instanceof BeetlSQLException
|| ex instanceof ConstraintViolationException) { || ex instanceof ConstraintViolationException) {
return ex.getCause() == null ? ex.getMessage() : ex.getCause().getMessage(); return ex.getCause() == null ? ex.getMessage() : ex.getCause().getMessage();
} else{ } else{

@ -84,12 +84,13 @@ public class HttpRequestLocal {
* *
* @return * @return
*/ */
public String getRquestToken() { public String getRequestToken() {
HttpServletRequest request = getRequest(); HttpServletRequest request = getRequest();
final String tokenHeader = request.getHeader(AUTHORIZATION); final String tokenHeader = request.getHeader(AUTHORIZATION);
String cookieTokenValue = null; String cookieTokenValue = null;
try { try {
// Cookie里取最新时间创建的Token // Cookie里取最新时间创建的Token
Comparator<Cookie> cookieComparator = (o1, o2) -> Comparator<Cookie> cookieComparator = (o1, o2) ->
@ -103,14 +104,29 @@ public class HttpRequestLocal {
if (cookie != null) { if (cookie != null) {
cookieTokenValue = cookie.getValue(); cookieTokenValue = cookie.getValue();
} }
}catch (Exception e) { } } catch (Exception e) { }
// 获取url中的_role_tag 时间戳属性匹配cookie中的时间戳值。来拿到token
String roleTag = defaultIfNull(request.getParameter("_role_tag"), request.getHeader("_role_tag"));
Optional<Cookie> first = Arrays.stream(request.getCookies())
// 时间戳结尾判断
.filter(item -> item.getValue().endsWith("\\." + roleTag)).findFirst();
String cookieValue = null;
if (first.isPresent()) {
cookieValue = first.get().getValue();
}
final String[] jwtStrings = jwtTokenSplitTimestamp(defaultIfBlank(tokenHeader, cookieTokenValue)); final String originToken = defaultIfBlank(defaultIfBlank(tokenHeader, cookieValue), cookieTokenValue);
final String[] jwtStrings = jwtTokenSplitTimestamp(originToken);
return jwtStrings[0]; return jwtStrings[0];
} }
public Object getSessionValue(String key){ public Object getSessionValue(String key){
String headerToken = getRquestToken(); String headerToken = getRequestToken();
if (headerToken == null) { if (headerToken == null) {
return null; return null;
} }
@ -122,7 +138,7 @@ public class HttpRequestLocal {
} }
public void setSessionValue(String key, Object obj){ public void setSessionValue(String key, Object obj){
String headerToken = getRquestToken(); String headerToken = getRequestToken();
if (headerToken == null) { if (headerToken == null) {
return; return;
} }
@ -160,7 +176,7 @@ public class HttpRequestLocal {
* @param key * @param key
*/ */
public void removeSessionValue(String key) { public void removeSessionValue(String key) {
String headerToken = getRquestToken(); String headerToken = getRequestToken();
if (headerToken == null) { if (headerToken == null) {
return; return;
} }
@ -175,7 +191,7 @@ public class HttpRequestLocal {
* Session * Session
*/ */
public void clear() { public void clear() {
String headerToken = getRquestToken(); String headerToken = getRequestToken();
if (headerToken == null) { if (headerToken == null) {
return; return;
} }
@ -232,7 +248,7 @@ public class HttpRequestLocal {
} }
public Object getAttribute(String key){ public Object getAttribute(String key){
String headerToken = getRquestToken(); String headerToken = getRequestToken();
if (headerToken == null) { if (headerToken == null) {
return null; return null;
} }
@ -243,7 +259,7 @@ public class HttpRequestLocal {
return redisMap.get(key); return redisMap.get(key);
} }
public void setAttribute(String key, Object obj){ public void setAttribute(String key, Object obj){
String headerToken = getRquestToken(); String headerToken = getRequestToken();
if (headerToken == null) { if (headerToken == null) {
return; return;
} }

@ -129,7 +129,7 @@ public class WebPlatformService {
CoreUser user = userLoginInfo.getUser(); CoreUser user = userLoginInfo.getUser();
CoreOrg currentOrg = userLoginInfo.getCurrentOrg(); CoreOrg currentOrg = userLoginInfo.getCurrentOrg();
List<CoreOrg> orgs = userLoginInfo.getOrgs(); List<CoreOrg> orgs = userLoginInfo.getOrgs();
String headerToken = httpRequestLocal.getRquestToken(); String headerToken = httpRequestLocal.getRequestToken();
corePlatformService.setLoginUserByToken(headerToken, user, currentOrg, orgs, null); corePlatformService.setLoginUserByToken(headerToken, user, currentOrg, orgs, null);
setUserInfoToSessionByIdentity(headerToken, user); setUserInfoToSessionByIdentity(headerToken, user);

Loading…
Cancel
Save