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

问题描述 投票:0回答:2

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

我有两条路:

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

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

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

.antMatchers(HttpMethod.GET, "/api/posts/{postId}").permitAll()
.antMatchers(HttpMethod.GET, "/api/posts/myPosts").hasRole("USER")
spring spring-security
2个回答
1
投票

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

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

-1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.