You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Security配置antMatchers后接口返回403应如何配置规则

问题根因

你配置的Spring Security路径匹配规则和实际Controller暴露的接口路径不一致:
你提供的Controller接口的@GetMapping路径为/jobs/find/{status},没有/api前缀,但SecurityConfig里的antMatchers多写了/api前缀,导致请求无法匹配到权限规则,触发默认拦截逻辑返回403。

正确配置方案

场景1:无全局路径前缀(适配你当前给出的代码)

直接修改SecurityConfig中的匹配规则即可:

// 需提前导入org.springframework.http.HttpMethod类
http.authorizeRequests().antMatchers(HttpMethod.GET, "/jobs/find/**").hasAnyAuthority("APPLICANT");

场景2:项目配置了全局路径前缀

如果你的Controller类上标注了@RequestMapping("/api"),或者在配置文件中设置了server.servlet.context-path=/api,原路径规则是正确的,此时排查以下问题即可:

  • 验证当前登录用户的权限列表中是否存在APPLICANT权限,Spring Security的权限字符串区分大小写,必须和你存入SecurityContext的权限值完全一致
  • 调整规则顺序:antMatchers规则从上到下依次匹配,细粒度规则要放在宽泛规则之前,避免被提前覆盖
  • 调试阶段可临时添加http.csrf().disable()关闭csrf校验,排除csrf拦截的影响

内容的提问来源于stack exchange,提问作者Vishnupriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:18:01