白名单“/”端点在Spring Security 6上不起作用

u4dcyp6a  于 2022-12-13  发布在  Spring
关注(0)|答案(1)|浏览(717)

我正在学习Spring Security的课程,我试图让它在最新的Spring Security 6上工作。我试图使用基本身份验证将localhost:8080/列入白名单。但是当我访问URL时,它仍然要求我提供凭据。
目前我有这个bean:

@Configuration
@EnableWebSecurity
public class ApplicationSecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {

        return http
                .authorizeHttpRequests(auth -> {
                            auth.requestMatchers("/").permitAll();
                            auth.requestMatchers("index").permitAll();
                            auth.requestMatchers("/css/*").permitAll();
                            auth.requestMatchers("js/*").permitAll();
                            auth.anyRequest().authenticated();
                        }
                )
                .httpBasic(withDefaults()).build();

    }
}

但默认的'/'端点,仍然没有被列入白名单。

xu3bshqb

xu3bshqb1#

如果您在类中使用的是@EnableWebSecurity而没有@Configuration,那么现在使用Spring Security 6时,您应该添加@Configuration,因为@EnableWebSecurity中不再包含@Configuration
Spring 安全6

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import({ WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class,
        HttpSecurityConfiguration.class })
@EnableGlobalAuthentication
public @interface EnableWebSecurity {

相关问题