|
|
|
@ -84,12 +84,13 @@ public class HttpRequestLocal {
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public String getRquestToken() {
|
|
|
|
|
public String getRequestToken() {
|
|
|
|
|
HttpServletRequest request = getRequest();
|
|
|
|
|
final String tokenHeader = request.getHeader(AUTHORIZATION);
|
|
|
|
|
|
|
|
|
|
String cookieTokenValue = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// Cookie里取最新时间创建的Token
|
|
|
|
|
Comparator<Cookie> cookieComparator = (o1, o2) ->
|
|
|
|
@ -103,14 +104,29 @@ public class HttpRequestLocal {
|
|
|
|
|
if (cookie != null) {
|
|
|
|
|
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];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Object getSessionValue(String key){
|
|
|
|
|
String headerToken = getRquestToken();
|
|
|
|
|
String headerToken = getRequestToken();
|
|
|
|
|
if (headerToken == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
@ -122,7 +138,7 @@ public class HttpRequestLocal {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setSessionValue(String key, Object obj){
|
|
|
|
|
String headerToken = getRquestToken();
|
|
|
|
|
String headerToken = getRequestToken();
|
|
|
|
|
if (headerToken == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -160,7 +176,7 @@ public class HttpRequestLocal {
|
|
|
|
|
* @param key
|
|
|
|
|
*/
|
|
|
|
|
public void removeSessionValue(String key) {
|
|
|
|
|
String headerToken = getRquestToken();
|
|
|
|
|
String headerToken = getRequestToken();
|
|
|
|
|
if (headerToken == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -175,7 +191,7 @@ public class HttpRequestLocal {
|
|
|
|
|
* 移除所有的Session数据
|
|
|
|
|
*/
|
|
|
|
|
public void clear() {
|
|
|
|
|
String headerToken = getRquestToken();
|
|
|
|
|
String headerToken = getRequestToken();
|
|
|
|
|
if (headerToken == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -232,7 +248,7 @@ public class HttpRequestLocal {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Object getAttribute(String key){
|
|
|
|
|
String headerToken = getRquestToken();
|
|
|
|
|
String headerToken = getRequestToken();
|
|
|
|
|
if (headerToken == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
@ -243,7 +259,7 @@ public class HttpRequestLocal {
|
|
|
|
|
return redisMap.get(key);
|
|
|
|
|
}
|
|
|
|
|
public void setAttribute(String key, Object obj){
|
|
|
|
|
String headerToken = getRquestToken();
|
|
|
|
|
String headerToken = getRequestToken();
|
|
|
|
|
if (headerToken == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|