我创建了两个过滤器来使用 JWT 令牌执行身份验证。我想在第一个中处理 JWT 异常:exceptionTokenVerificationHandlerFilter 并检查第二个中是否一切正常:jwtTokenFilter。如果身份验证因到期日期而失败,则过程返回到第一个过滤器并向前端发送一个响应,其中包含访问被拒绝的消息。
Web安全配置
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic().disable()
.addFilterBefore(exceptionTokenVerificationHandlerFilter, JwtTokenFilter.class)
.addFilterBefore(jwtTokenFilter, UsernamePasswordAuthenticationFilter.class)
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.cors().and()
.csrf().disable()
.authorizeRequests() // .antMatchers("/**")
.antMatchers("/login/**", "/register/**").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
//.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
.addFilterAt(customUsernamePasswordAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)
/*.formLogin()
.loginPage("http://localhost:4200/login")//.failureUrl("/login-error")
.loginProcessingUrl("/login")
.usernameParameter("email")
.successHandler(customAuthenticationSuccessHandler)
.and()*/
.logout()
.permitAll();
}
那么我可以在过滤器链中一个接一个地添加两个自定义过滤器吗?
我现在从编译器收到以下错误消息:
Caused by: java.lang.IllegalArgumentException: 在未注册过滤器类 app.shellx.security.JwtTokenFilter 后无法注册
弑天下
相关分类