Spring security Spring Security WebSecurity配置忽略具有多个条件的特定请求

Spring security Spring Security WebSecurity配置忽略具有多个条件的特定请求,spring-security,Spring Security,我试图通过扩展WebSecurityConfigurerAdapter类并实现configure(websecurityweb)方法绕过所有过滤器和安全层 如果我想忽略多个端点,那么它可以完美地工作。如果我想忽略具有特定端点或具有特定请求头的请求,那么它也可以工作,但它不能满足两个条件,即忽略具有特定路径和特定请求头的请求。它基本上忽略了这些条件是否满足。我尝试过不同的变化,如: RequestHeaderRequestMatcher RequestHeaderRequestMatcher=ne

我试图通过扩展
WebSecurityConfigurerAdapter
类并实现
configure(websecurityweb)
方法绕过所有过滤器和安全层

如果我想忽略多个端点,那么它可以完美地工作。如果我想忽略具有特定端点或具有特定请求头的请求,那么它也可以工作,但它不能满足两个条件,即忽略具有特定路径和特定请求头的请求。它基本上忽略了这些条件是否满足。我尝试过不同的变化,如:

RequestHeaderRequestMatcher RequestHeaderRequestMatcher=newrequestheaderrequestmatcher(HEADER\u HEALTH\u CHECK,“1”);
AntPathRequestMatcher AntPathRequestMatcher=新的AntPathRequestMatcher(“/healthStats”);
网状物
.忽略()
.requestMatchers(requestHeaderRequestMatcher、antPathRequestMatcher);
网状物
.忽略()
.requestMatchers(requestHeaderRequestMatcher)
.antMatchers(“/healthStats”);

您必须组合两个请求匹配器,请参阅:

RequestMatcher
,如果传入的所有
RequestMatcher
实例匹配,将返回true

您修改的配置:

RequestHeaderRequestMatcher RequestHeaderRequestMatcher=newrequestheaderrequestmatcher(HEADER\u HEALTH\u CHECK,“1”);
AntPathRequestMatcher AntPathRequestMatcher=新的AntPathRequestMatcher(“/healthStats”);
AndRequestMatcher AndRequestMatcher=新的AndRequestMatcher(requestHeaderRequestMatcher,antPathRequestMatcher);
网状物
.忽略()
.请求匹配者(andRequestMatcher);