springsecurity认证成功后上下文存储信息问题

springsecurity框架

img

如图认证成功后需要将认证返回的authentication放到上下文,但是为什么的我将认证前的usernamePasswordAuthenticationToken放进去,也可以读到权限,明明认证前的usernamePasswordAuthenticationToken里面是没有权限信息的

img


但是再后续的访问过程中竟然又读到了这个信息

img

想不通,望指教!

img


虽然放到上下文的usernamePasswordAuthenticationToken里面是没有权限信息,而且登录状态也为false,但是在访问其他路径的时候,AbstractSecurityInterceptor.里面的这个方法还是会取出之前存的usernamePasswordAuthenticationToken,重新去调用this.authenticationManager.authenticate(authentication)去认证,所以这就是上下文为什么存的东西没有权限信息,但是不影响后续访问的原因

建议打个断点在 设置authorities 值的地方,看看是啥时候设值的

之前遇到过,给一个错误的用户信息。

验证滞后了,应该在验证时拦截,而不是通过上下文拦截。

没发现他都不是一个对象了嘛,一个hashcode是12728,一个是12775,自己代码跟全吧,随便拿几个片段没意义