为了账号安全,请及时绑定邮箱和手机立即绑定

为包含路径变量的 url 禁用 spring security

为包含路径变量的 url 禁用 spring security

慕盖茨4494581 2023-05-10 13:57:05
我正在工作的项目antMatcher实现了 spring security,如下所示:http.authorizeRequests()     .antMatchers("/v1/users/**").authenticated()     .antMatchers(HttpMethod.POST, "/v1/users/*/do").permitAll()当我尝试访问时/v1/users/2/do出现未经授权的错误,但我希望它可以访问,因为我将“permitAll()”添加到 URL 模式。我努力了:.antMatchers(HttpMethod.POST, "/v1/users/{id}/do").permitAll()我仍然得到未经授权的访问。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您需要切换行以便首先放置最具体的规则:

http.authorizeRequests()
    .antMatchers(HttpMethod.POST, "/v1/users/*/do").permitAll()
    .antMatchers("/v1/users/**").authenticated()

这是因为使用了第一个匹配项(按照它们声明的顺序)。

由于您首先拥有最一般的规则,因此这是一个被考虑在内的规则,忽略下一个可能的匹配项(并禁止请求)。


查看完整回答
反对 回复 2023-05-10
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信