diff --git a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java index 9c6e93b..b6c1f66 100644 --- a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java +++ b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java @@ -69,11 +69,11 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter { // 检查cookie else { Optional.ofNullable(request.getCookies()) - .ifPresentOrElse(cookies -> Stream.of(cookies) + .ifPresent(cookies -> Stream.of(cookies) .filter(item -> StringUtils.equals(item.getName(), COOKIE_TOKEN_CODE)).findFirst() - .ifPresentOrElse(cookie -> setAuthentication(currentRoleCode, cookie.getValue()), - () -> defaultAuthentication()), - () -> defaultAuthentication()); + .ifPresent(cookie -> setAuthentication(currentRoleCode, cookie.getValue()))); + + isNullThenAssignDefault(); } filterChain.doFilter(request, response); } @@ -120,9 +120,11 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter { /** * 未发现token和session信息,则使用空的用户认证对象放行服务 */ - private void defaultAuthentication() { - SecurityContextHolder.getContext() - .setAuthentication(new UsernamePasswordAuthenticationToken(new SecurityUser(), null, null)); + private void isNullThenAssignDefault() { + if (Objects.isNull(SecurityContextHolder.getContext().getAuthentication())) { + SecurityContextHolder.getContext() + .setAuthentication(new UsernamePasswordAuthenticationToken(new SecurityUser(), null, null)); + } } }