我们保留有关在系统中执行某些特定操作的用户的信息。要获取此信息,我们称为SecurityContextHolder.getContext().getAuthentication()
。
那很好,但是这段代码偶尔会返回AnonymousAuthenticationToken
,这很奇怪,因为此操作仅在被登录用户,没有调度程序等触发之后才执行。
在任何情况下,这种行为是合理的还是有人知道会导致这种情况的原因?正如我所说的那样,这种情况很少发生,大多数情况下都可以正常工作。
答案 0 :(得分:0)
当您拥有AnonymousAuthenticationToken
时,表示AnonymousAuthenticationFilter在SecurityContext
中注册了令牌。因此,filter chain中之前的每个过滤器均未验证请求。您应该检查哪些请求正正是导致上述行为的原因,对于这些请求,您的WebSecurityConfigurer
可能配置不正确。