下面是我的代码
String[] allowedEndpoints = new String[]{"/preauth/**", "/.~~spring-boot!~/restart/**", "/h2-console/**"};
@Bean
public SecurityFilterChain defaultSecurityFilterChain(final HttpSecurity http) throws Exception { // NOPMD
http
.csrf().ignoringAntMatchers(allowedEndpoints) //used to allow http post
.and()
.authorizeRequests()
.mvcMatchers(allowedEndpoints).permitAll()
.requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll()
.mvcMatchers("/private/**").authenticated()
//.anyRequest().authenticated()
.and()
.formLogin(withDefaults());
http.headers().frameOptions().sameOrigin();
return http.build();
}
这允许所有端点不进行任何身份验证,但应使用“/private/**”。我一取消注解 .anyRequest().authenticated()
它开始要求对所有端点进行身份验证。
我的理解是匹配者会按顺序进行,一旦第一个匹配者匹配,它就会跳过剩下的匹配者。那么.anyrequest()是如何匹配的,它位于末尾。我错过什么了吗?
暂无答案!
目前还没有任何答案,快来回答吧!