在使用springSecurity时,配置了放行接口,但是还是被拦截器拦截了,环境是springboot3.3.0具体代码如下
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
// 禁用CSRF保护,如果你的应用需要则启用并配置
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth
.requestMatchers("/admin/user/insertItem").permitAll() // 允许访问认证端点
.anyRequest().authenticated() // 其他请求需要认证
)
// 无状态会话
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
// 添加JWT过滤器
.addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class);
http.exceptionHandling(exception -> exception.authenticationEntryPoint(customAuthenticationEntryPoint));
http.exceptionHandling(exception -> exception.accessDeniedHandler(customAccessDeniedHandler));
return http.build();
}
已经配置了放行接口/admin/user/insertItem 但是在访问的时候还是进入了jwtAuthFilter中,控制台打印信息如下
网上有说可以使用WebSecurityCustomizer进行放行接口,这个也试了试,但是没有效果,而且启动的时候就警告了,推荐使用 .requestMatchers("/admin/user/insertItem").permitAll()这种,现在如果不在filter中进行处理,如何解决呢?