Java 对包含路径变量的url禁用spring安全性
我正在工作的项目的spring securityJava 对包含路径变量的url禁用spring安全性,java,spring-boot,spring-security,Java,Spring Boot,Spring Security,我正在工作的项目的spring securityantMatcher实现如下: http.authorizeRequests() .antMatchers("/v1/users/**").authenticated() .antMatchers(HttpMethod.POST, "/v1/users/*/do").permitAll() 当我尝试访问/v1/users/2/do时,我收到一个未经授权的错误,但我希望它可以访问,因为我在URL模式中添加了“permitAll()”
antMatcher
实现如下:
http.authorizeRequests()
.antMatchers("/v1/users/**").authenticated()
.antMatchers(HttpMethod.POST, "/v1/users/*/do").permitAll()
当我尝试访问/v1/users/2/do
时,我收到一个未经授权的错误,但我希望它可以访问,因为我在URL模式中添加了“permitAll()”
我试过:
.antMatchers(HttpMethod.POST, "/v1/users/{id}/do").permitAll()
我仍然会获得未经授权的访问。您需要切换线路,以便将最具体的规则放在第一位: 这是因为第一个匹配项(与声明的顺序相同)就是使用的匹配项
由于您首先有最一般的规则,因此将考虑这一规则,忽略下一个可能的匹配(并禁止请求)。您需要切换行,以便将最具体的规则放在第一位: 这是因为第一个匹配项(与声明的顺序相同)就是使用的匹配项 因为您首先有最一般的规则,所以这是考虑到的规则,忽略下一个可能的匹配(并禁止请求)
http.authorizeRequests()
.antMatchers(HttpMethod.POST, "/v1/users/*/do").permitAll()
.antMatchers("/v1/users/**").authenticated()