Spring Security 6.3.3中CSRF Token报错问题求助
Spring Security 6.3.3 CSRF禁用后仍报403的排查方案
- 先确认SecurityFilterChain配置是否真的生效,避免被其他配置覆盖
csrf.disable()。要确保配置里明确给/api/drivers/register开放匿名访问,示例代码如下:
@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf(csrf -> csrf.disable()) .authorizeHttpRequests(auth -> auth .requestMatchers("/api/drivers/register").permitAll() .anyRequest().authenticated() ); return http.build(); }
如果项目存在多个SecurityFilterChain实例,记得用@Order指定优先级,比如给该配置添加@Order(1),保证它优先执行。
清理浏览器缓存或使用无痕窗口测试,旧的CSRF token可能被缓存,导致请求自动携带无效token。
检查控制器的
@CrossOrigin配置是否完整,确保允许POST方法,示例如下:
@CrossOrigin(origins = "*", methods = {RequestMethod.POST}) @PostMapping("/api/drivers/register") public ResponseEntity<?> registerDriver(@RequestBody DriverDTO driverDTO) { // 业务逻辑实现 }
- 排查是否有自定义过滤器或第三方安全组件在Spring Security之前拦截请求,部分组件会自行做CSRF校验,绕开你的配置。
内容的提问来源于stack exchange,提问作者hungryHippo
相关产品推荐
相关产品推荐

