允许少数端点并使用匹配器验证剩余的Spring Security

daolsyd0  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(167)

下面是我的代码

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()是如何匹配的,它位于末尾。我错过什么了吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题