|
|
|
@ -41,18 +41,24 @@ public class TokenInterceptor extends HandlerInterceptorAdapter {
|
|
|
|
|
public TokenInterceptor(String tokenHeaderName, String userIdHeaderName, String tokenRedisKeyPrefix) {
|
|
|
|
|
this.tokenHeaderName = tokenHeaderName;
|
|
|
|
|
this.userIdHeaderName = userIdHeaderName;
|
|
|
|
|
tokenRedisKeyPrefix = tokenRedisKeyPrefix;
|
|
|
|
|
this.tokenRedisKeyPrefix = tokenRedisKeyPrefix;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public TokenInterceptor(String tokenHeaderName, String userIdHeaderName, String tokenRedisKeyPrefix, String userIdPropertyName) {
|
|
|
|
|
this.tokenHeaderName = tokenHeaderName;
|
|
|
|
|
this.userIdHeaderName = userIdHeaderName;
|
|
|
|
|
tokenRedisKeyPrefix = tokenRedisKeyPrefix;
|
|
|
|
|
this.tokenRedisKeyPrefix = tokenRedisKeyPrefix;
|
|
|
|
|
this.userIdPropertyName = userIdPropertyName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
|
|
|
String path = request.getRequestURI();
|
|
|
|
|
// 跟swagger冲突,跳出response包装
|
|
|
|
|
if (path.contains("swagger") || path.contains("api-docs") || path.contains("error") || path.contains("/monitor/url-mappings") || path.contains("doc.html")) {
|
|
|
|
|
//忽略验证
|
|
|
|
|
return super.preHandle(request, response, handler);
|
|
|
|
|
}
|
|
|
|
|
if (handler instanceof HandlerMethod) {
|
|
|
|
|
HandlerMethod handlerMethod = (HandlerMethod) handler;
|
|
|
|
|
Class<?> controller = handlerMethod.getMethod().getDeclaringClass();
|
|
|
|
@ -90,7 +96,7 @@ public class TokenInterceptor extends HandlerInterceptorAdapter {
|
|
|
|
|
String headerUserId = request.getHeader(userIdHeaderName);
|
|
|
|
|
if (!userId.equalsIgnoreCase(headerUserId)) {
|
|
|
|
|
//非法 token , token和userid不匹配
|
|
|
|
|
logger.info("token {} is not. match userId {}", token, headerUserId);
|
|
|
|
|
logger.info("token {} is not match userId {}", token, headerUserId);
|
|
|
|
|
throw new ApiException(ExceptionCode.TokenError);
|
|
|
|
|
}
|
|
|
|
|
//重置token过期时间
|
|
|
|
|