我想知道ant matcher在spring security中是如何工作的??
我有两个休息点:第一个休息班
@RestController
@RequestMapping("/auth")
class RestService1{
@GetMapping("/status")
public String status() {
return "Yes, I am fine";
}
}
二等舱
@RestController
@RequestMapping("/test")
class RestService2{
@GetMapping("/status")
public String status() {
return "Yes, Test status";
}
}
spring安全配置类:
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter{
protected void configure(HttpSecurity http)throws Exception{
http.authorizeRequests().antMatchers("/auth/*").permitAll();
}
}
我的问题是:
根据我的理解,“antmatchers(“/auth/*”).permitall()行的含义是允许所有包含“auth”的请求URL。但有了这段代码,我也可以访问localhost:8080/test/status url。
所以,如果我想只允许“auth”包含url并拒绝所有url,我能做什么呢?
2条答案
按热度按时间vsikbqxv1#
此代码将只允许以“auth”开头的请求URL,并将拒绝所有其他URL。
sgtfey8w2#
anyrequest().authenticate()将禁止所有其他路由,在访问这些路由之前必须对其中一个路由进行身份验证。