mirror of
https://github.com/mfish-qf/mfish-nocode.git
synced 2026-08-28 19:21:26 +08:00
refactor: token校验重构
This commit is contained in:
+11
-22
@@ -21,16 +21,13 @@ public abstract class AbstractTokenValidator<T> implements IBaseValidator<T> {
|
||||
* 校验不同类型request中包含的token信息是否正确
|
||||
*
|
||||
* @param request
|
||||
* @param result 如果result已存在结果不再校验
|
||||
* @param <R>
|
||||
* @return
|
||||
*/
|
||||
public <R> Result<T> validateT(R request, Result<T> result) {
|
||||
if (result == null || result.getData() == null) {
|
||||
String accessToken = AuthInfoUtils.getAccessToken(request);
|
||||
return validate(accessToken);
|
||||
}
|
||||
return result;
|
||||
public <R> Result<T> validateT(R request) {
|
||||
String accessToken = AuthInfoUtils.getAccessToken(request);
|
||||
return validate(accessToken);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -40,22 +37,14 @@ public abstract class AbstractTokenValidator<T> implements IBaseValidator<T> {
|
||||
* @return
|
||||
*/
|
||||
public Result<T> validate(String accessToken) {
|
||||
return validate(accessToken, null);
|
||||
}
|
||||
|
||||
public Result<T> validate(String accessToken, Result<T> result) {
|
||||
T token;
|
||||
if (result == null || result.getData() == null) {
|
||||
result = new Result<>();
|
||||
if (StringUtils.isEmpty(accessToken)) {
|
||||
return result.setSuccess(false).setMsg("错误:令牌token不允许为空");
|
||||
}
|
||||
token = (T) tokenService.getToken(accessToken);
|
||||
if (token == null) {
|
||||
return result.setSuccess(false).setMsg("错误:token不存在或已过期");
|
||||
}
|
||||
return result.setData(token);
|
||||
if (StringUtils.isEmpty(accessToken)) {
|
||||
Result.fail("错误:令牌token不允许为空");
|
||||
}
|
||||
return result;
|
||||
token = (T) tokenService.getToken(accessToken);
|
||||
if (token == null) {
|
||||
return Result.fail("错误:token不存在或已过期");
|
||||
}
|
||||
return Result.ok(token);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -22,11 +22,8 @@ public class TokenValidator {
|
||||
|
||||
public <R> Result<?> validator(R request) {
|
||||
String accessToken = AuthInfoUtils.getAccessToken(request);
|
||||
if (StringUtils.isEmpty(accessToken)) {
|
||||
return Result.fail("错误:令牌token不允许为空");
|
||||
}
|
||||
Result<?> result;
|
||||
if (accessToken.startsWith(SerConstant.WX_PREFIX)) {
|
||||
if (!StringUtils.isEmpty(accessToken) && accessToken.startsWith(SerConstant.WX_PREFIX)) {
|
||||
result = weChatTokenValidator.validate(accessToken);
|
||||
} else {
|
||||
result = webTokenValidator.validate(accessToken);
|
||||
|
||||
+2
-2
@@ -22,11 +22,11 @@ public class WeChatTokenValidator extends AbstractTokenValidator<WeChatToken> {
|
||||
}
|
||||
|
||||
public Result<WeChatToken> validate(HttpServletRequest request) {
|
||||
return validateT(request, null);
|
||||
return validateT(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<WeChatToken> validate(HttpServletRequest request, Result<WeChatToken> result) {
|
||||
return validateT(request, result);
|
||||
return validateT(request);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -21,16 +21,16 @@ public class WebTokenValidator extends AbstractTokenValidator<RedisAccessToken>
|
||||
}
|
||||
|
||||
public Result<RedisAccessToken> validate(ServerHttpRequest request) {
|
||||
return validateT(request, null);
|
||||
return validateT(request);
|
||||
}
|
||||
|
||||
public Result<RedisAccessToken> validate(HttpServletRequest request) {
|
||||
return validateT(request, null);
|
||||
return validateT(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<RedisAccessToken> validate(HttpServletRequest request, Result<RedisAccessToken> result) {
|
||||
return validateT(request, result);
|
||||
return validateT(request);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class AllowCodeValidator extends AbstractClientValidator {
|
||||
if (!result1.isSuccess()) {
|
||||
return result1;
|
||||
}
|
||||
if(result1.getData().getGrantTypes().indexOf(GrantType.AUTHORIZATION_CODE.toString())<0){
|
||||
if(!result1.getData().getGrantTypes().contains(GrantType.AUTHORIZATION_CODE.toString())){
|
||||
return result1.setSuccess(false).setMsg("错误:该客户端不支持code请求方式!");
|
||||
}
|
||||
return result1;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class Code2TokenValidator extends MultipleValidator {
|
||||
* 校验code换token两次传入的clientId是否一致
|
||||
*/
|
||||
@Component
|
||||
public class ClientIdEqualValidator extends AbstractCodeValidator {
|
||||
public static class ClientIdEqualValidator extends AbstractCodeValidator {
|
||||
@Override
|
||||
public Result<AuthorizationCode> validate(HttpServletRequest request, Result<AuthorizationCode> result) {
|
||||
Result<AuthorizationCode> result1 = getAuthCode(request, result);
|
||||
@@ -62,7 +62,7 @@ public class Code2TokenValidator extends MultipleValidator {
|
||||
* 校验code换token两次传入的uri是否一致
|
||||
*/
|
||||
@Component
|
||||
public class UriEqualValidator extends AbstractCodeValidator {
|
||||
public static class UriEqualValidator extends AbstractCodeValidator {
|
||||
@Override
|
||||
public Result<AuthorizationCode> validate(HttpServletRequest request, Result<AuthorizationCode> result) {
|
||||
Result<AuthorizationCode> result1 = getAuthCode(request, result);
|
||||
|
||||
@@ -24,7 +24,7 @@ public class GrantTypeExistValidator extends AbstractClientValidator {
|
||||
if (StringUtils.isEmpty(grantType)) {
|
||||
return result1.setSuccess(false).setMsg("错误:grant_type为空");
|
||||
}
|
||||
if (result1.getData().getGrantTypes().indexOf(grantType) < 0) {
|
||||
if (!result1.getData().getGrantTypes().contains(grantType)) {
|
||||
return result1.setSuccess(false).setMsg("错误:该客户端不支持" + grantType + "请求方式!");
|
||||
}
|
||||
return result1;
|
||||
|
||||
Reference in New Issue
Block a user