如果您在当前的 antMatcher 规范之后附加一个星号 (*),您应该可以实现您的目标。
根据定义:
映射使用以下规则匹配 URL:
- ? 匹配一个字符
- * 匹配零个或多个字符
- ** 匹配路径中的零个或多个目录
- {spring:[az]+} 匹配正则表达式 [az]+ 作为名为“spring”的路径变量
您的代码的重要片段可能如下所示:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/api/v1/something*");
}
您也可以使用其他重载配置方法和HttpSecurity
路径相关安全配置的类型参数来实现相同的目的,如下所示:
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/api/v1/something*").permitAll();
}
如定义中所述,您还可以更进一步,当您的 AntMatcher 以/**
. 但这实际上取决于您的用例。有关实现细节,请查看Spring AntPathRequestMatcher
您相应的请求映射应如下所示(以@GetMapping 为例)。重要的是,您的路径没有尾随/
.
@GetMapping("/api/v1/something")
public ResponseEntity<String> getSomething(@RequestParam(value = "xyz", required = false) String xyz){
return ResponseEntity.ok("Called with xyz param: " + xyz);
}