|
|
@@ -50,6 +50,12 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|
|
@Override
|
|
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
|
|
|
String authHeader = request.getHeader(jwtUtil.getJwtProperties().getTokenHeader());
|
|
|
+ String authToken = tokenUtil.getAuthToken(authHeader);
|
|
|
+ String username = jwtUtil.getUserNameFromToken(authToken);
|
|
|
+ if(tokenUtil.getAuthentication() != null || StringUtils.isBlank(username)){
|
|
|
+ chain.doFilter(request, response);
|
|
|
+ return;
|
|
|
+ }
|
|
|
String authTimestamp = request.getHeader("timestamp");
|
|
|
String sign = request.getHeader("sign");
|
|
|
String contextPath = request.getServletPath();
|
|
|
@@ -58,6 +64,12 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|
|
handleUnauthorized(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"无效的请求");
|
|
|
return;
|
|
|
}
|
|
|
+ String signKey = "hcp:sign:"+sign;
|
|
|
+ String redisSign = redisClient.get(signKey,"");
|
|
|
+ if (StringUtils.isNotEmpty(redisSign)){
|
|
|
+ handleUnauthorized(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"无效的请求");
|
|
|
+ return;
|
|
|
+ }
|
|
|
Long timestamp = Long.parseLong(authTimestamp);
|
|
|
timestamp += 60000;
|
|
|
Long currentTimeMillis = System.currentTimeMillis();
|
|
|
@@ -76,12 +88,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|
|
handleUnauthorized(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"无效的请求");
|
|
|
return;
|
|
|
}
|
|
|
- }
|
|
|
- String authToken = tokenUtil.getAuthToken(authHeader);
|
|
|
- String username = jwtUtil.getUserNameFromToken(authToken);
|
|
|
- if(tokenUtil.getAuthentication() != null || StringUtils.isBlank(username)){
|
|
|
- chain.doFilter(request, response);
|
|
|
- return;
|
|
|
+ redisClient.set(signKey,"",60);
|
|
|
}
|
|
|
// 获取请求来源 (app获取pc端)
|
|
|
String requestSource = jwtUtil.getRequestSourceFromToken(authToken);
|