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