如何区分antMatchers与路径变量与上下文路径的其余部分[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何区分antMatchers与路径变量与上下文路径的其余部分[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我有两条路:

/api/posts/{postId}
/api/posts/myPosts

我想允许所有第一个路径,并保护角色USER的第二个路径。

我试过下面的模式但是当我添加第一个模式时,第二个停止工作(即使他没有USER角色,用户也可以获得myPosts)。我做错了什么?

.antMatchers(HttpMethod.GET, "/api/posts/{postId}").permitAll()
.antMatchers(HttpMethod.GET, "/api/posts/myPosts").hasRole("USER")
答案

问题在于您的规则。撤销订单将有效。

.antMatchers(HttpMethod.GET, "/api/posts/myPosts").hasRole("USER")
.antMatchers(HttpMethod.GET, "/api/posts/{postId}").permitAll()
另一答案

这里的事情是你必须指定所有路径都经过身份验证,因为它不是HttpSecurity对象的默认实现。

.antMatchers(HttpMethod.GET, "/api/posts/{postId}").permitAll()
.antMatchers(HttpMethod.GET, "/api/posts/myPosts").hasRole("USER")
.anyRequest().authenticated()

我建议在baeldung这里查看这个link,他们简要介绍一下Spring Security。

以上是关于如何区分antMatchers与路径变量与上下文路径的其余部分[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Weblogic服务下获取上下文路劲问题

为包含路径变量的 url 禁用 spring 安全性 [重复]

[BZOJ1138][POI2009]Baj 最短回文路

Java编程中如何区分常量和变量?

作用域与作用域链

如何将上下文变量与 Django 模板中的 SQL ID 进行比较?