springsecurity集成jwt时JwtTokenFilter的位置

网上很多Spring Security集成jwt的配置教程, 有一些配置的filter位置是错的.
这个是对的:
https://cloud.tencent.com/developer/article/1555599
内容:

.addFilterBefore(new JwtLoginFilter("/login",authenticationManager()),UsernamePasswordAuthenticationFilter.class)
.addFilterBefore(new JwtFilter(),UsernamePasswordAuthenticationFilter.class)

错误教程的共同点: 把JwtFilter(验证token的过滤器)放在JwtLoginFilter(登录过滤器, 如果没有自定义也可以是UsernamePasswordAuthenticationFilter)的前面. 这样的问题在于如果用户携带过期的token访问登录接口, 将会得到一个401forbidden错误.
官网对过滤器顺序也提出了参考建议, 这里挑选常用的几个, 可以参考.(排名分先后)

CorsFilter

LogoutFilter

CasAuthenticationFilter

OAuth2LoginAuthenticationFilter

UsernamePasswordAuthenticationFilter

BearerTokenAuthenticationFilter

ExceptionTranslationFilter

FilterSecurityInterceptor

上一篇:[Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example becaus


下一篇:WPF TextBox输入限制,只能输入数字,字母