|
@@ -1,4 +1,4 @@
|
|
|
-package com.chelvc.framework.security.token;
|
|
|
+package com.chelvc.framework.security.session;
|
|
|
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
@@ -12,7 +12,7 @@ import com.chelvc.framework.redis.context.RedisContextHolder;
|
|
|
import com.chelvc.framework.redis.context.RedisHashHolder;
|
|
|
import com.chelvc.framework.redis.context.RedisUserDailyHashHolder;
|
|
|
import com.chelvc.framework.security.config.SecurityProperties;
|
|
|
-import com.chelvc.framework.security.context.AuthorizeContextHolder;
|
|
|
+import com.chelvc.framework.security.context.SecurityContextHolder;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
@@ -37,14 +37,14 @@ public class RedisSessionValidator extends DefaultSessionValidator {
|
|
|
|
|
|
@Override
|
|
|
public OAuth2TokenValidatorResult validate(Jwt jwt) {
|
|
|
- if (AuthorizeContextHolder.isClient(jwt)) {
|
|
|
+ if (SecurityContextHolder.isClient(jwt)) {
|
|
|
return OAuth2TokenValidatorResult.success();
|
|
|
}
|
|
|
|
|
|
// 校验令牌有效性
|
|
|
Long id = this.getId(jwt);
|
|
|
RedisTemplate<String, Object> template = RedisContextHolder.getDefaultTemplate();
|
|
|
- Map<String, ?> context = RedisHashHolder.get(template, AuthorizeContextHolder.key(id));
|
|
|
+ Map<String, ?> context = RedisHashHolder.get(template, "token:" + id);
|
|
|
String terminal = String.valueOf(SessionContextHolder.getTerminal());
|
|
|
String token = (String) context.get(terminal), scope = this.getScope(jwt);
|
|
|
if (StringUtils.isEmpty(token)) {
|
|
@@ -56,9 +56,9 @@ public class RedisSessionValidator extends DefaultSessionValidator {
|
|
|
throw new OAuth2AuthenticationException(new OAuth2Error(
|
|
|
"TOKEN_CHANGED", ApplicationContextHolder.getMessage("Token.Changed"), null
|
|
|
));
|
|
|
- } else if (this.properties.getAuthorize().isScoped()) {
|
|
|
+ } else if (this.properties.getOauth().isScoped()) {
|
|
|
// 判断应用范围是否相同,如果不同则表示应用范围已被重置,需要刷新令牌
|
|
|
- String real = (String) context.get(AuthorizeContextHolder.SCOPE);
|
|
|
+ String real = (String) context.get(SecurityContextHolder.SCOPE);
|
|
|
if (!Objects.equals(scope, real)) {
|
|
|
String arg = StringUtils.ifEmpty(real, ApplicationContextHolder::getMessage);
|
|
|
String message = ApplicationContextHolder.getMessage("Scope.Changed", new Object[]{arg});
|
|
@@ -67,12 +67,12 @@ public class RedisSessionValidator extends DefaultSessionValidator {
|
|
|
}
|
|
|
|
|
|
// 更新会话主体信息
|
|
|
- long interval = this.properties.getRequest().getInterval();
|
|
|
- String mobile = (String) context.get(AuthorizeContextHolder.MOBILE);
|
|
|
- Long creating = (Long) context.get(AuthorizeContextHolder.CREATING);
|
|
|
- Long registering = (Long) context.get(AuthorizeContextHolder.REGISTERING);
|
|
|
+ String mobile = (String) context.get(SecurityContextHolder.MOBILE);
|
|
|
+ Long creating = (Long) context.get(SecurityContextHolder.CREATING);
|
|
|
+ Long registering = (Long) context.get(SecurityContextHolder.REGISTERING);
|
|
|
+ long interval = this.properties.getRequest().getUsingRefreshInterval();
|
|
|
Using using = Using.from(RedisUserDailyHashHolder.using(template, id), creating, interval);
|
|
|
- Set<String> authorities = AuthorizeContextHolder.getAuthorities(jwt);
|
|
|
+ Set<String> authorities = SecurityContextHolder.getAuthorities(jwt);
|
|
|
SessionContextHolder.setSession(id, using, scope, mobile, registering, authorities);
|
|
|
return OAuth2TokenValidatorResult.success();
|
|
|
}
|