Java ant matcher如何在spring security中工作
我想知道ant matcher在spring security中是如何工作的 我有两个休息点: 头等舱Java ant matcher如何在spring security中工作,java,spring-boot,spring-security,Java,Spring Boot,Spring Security,我想知道ant matcher在spring security中是如何工作的 我有两个休息点: 头等舱 @RestController @RequestMapping("/auth") class RestService1{ @GetMapping("/status") public String status() { return "Yes, I am fine"; } }
@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";
}
}
二等舱
@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,我该怎么办?此代码将只允许以“auth”开头的请求URL,并拒绝所有其他URL
@EnableWebSecurity
@配置
类SecurityConfiguration扩展了WebSecurity配置适配器{
@凌驾
受保护的无效配置(HttpSecurity http)引发异常{
http.authorizeRequests()
.antMatchers(“/auth/**”)
.permitAll()
.anyRequest()
.denyAll();
}
}
anyRequest().authenticate()将禁止所有其他路由,在访问这些路由之前必须对其中一个路由进行身份验证
@Configuration
class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/auth/**")
.permitAll()
.anyRequest()
.authenticate();
}
}