增加无 token 和 session 信息的服务调用放行

This commit is contained in:
ajaxfan
2021-05-10 16:29:43 +08:00
parent dede933267
commit a17c514b1b

View File

@ -68,10 +68,12 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
} }
// 检查cookie // 检查cookie
else { else {
Optional.ofNullable(request.getCookies()).ifPresent(cookies -> { Optional.ofNullable(request.getCookies())
Stream.of(cookies).filter(item -> StringUtils.equals(item.getName(), COOKIE_TOKEN_CODE)).findFirst() .ifPresentOrElse(cookies -> Stream.of(cookies)
.ifPresent(cookie -> setAuthentication(currentRoleCode, cookie.getValue())); .filter(item -> StringUtils.equals(item.getName(), COOKIE_TOKEN_CODE)).findFirst()
}); .ifPresentOrElse(cookie -> setAuthentication(currentRoleCode, cookie.getValue()),
() -> defaultAuthentication()),
() -> defaultAuthentication());
} }
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
} }
@ -115,4 +117,12 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
authorities); authorities);
} }
/**
* 未发现token和session信息则使用空的用户认证对象放行服务
*/
private void defaultAuthentication() {
SecurityContextHolder.getContext()
.setAuthentication(new UsernamePasswordAuthenticationToken(new SecurityUser(), null, null));
}
} }