Spring Security 6 игнорирует конфигурацию безопасности из зависимости

Я перехожу с Spring Security 5.7.x на 6.1.0. После исправления всехjavax -> jakartaи удалитьWebSecurityConfigurerAdapterи добавил конфигурацию безопасности из зависимости. И теперь кажется, что мой основной проект игнорирует конфигурацию безопасности из-за зависимости.

Конфигурация безопасности из зависимости.

      @Configuration
@EnableWebSecurity
@RequiredArgsConstructor
@Slf4j
public class WebSecurityConfig {

    final private AuthFilter authFilter;

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        return http
                .formLogin(AbstractHttpConfigurer::disable)
                .csrf(AbstractHttpConfigurer::disable)
                .sessionManagement(sessionManager -> sessionManager.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .exceptionHandling(exceptionHandling -> exceptionHandling.authenticationEntryPoint(
                        (request, response, ex) -> {
                    log.error("Unauthorized request - {}", ex.getMessage());
                    response.sendError(HttpServletResponse.SC_UNAUTHORIZED, ex.getMessage());
                }))
                .authorizeHttpRequests(
                        authorizeHttpRequest -> authorizeHttpRequest
                                .requestMatchers("/**").permitAll()
                                .anyRequest().authenticated())
                .addFilterBefore(authFilter, UsernamePasswordAuthenticationFilter.class)
                .httpBasic(Customizer.withDefaults())
                .build();
    }

Аутфильтр

      @Component
@RequiredArgsConstructor
@Slf4j
public class AuthFilter extends OncePerRequestFilter {}

Я ожидаю, что сначала будет вызван AuthFilter, но он даже не дошел до него. Похоже, это игнорируется.

У кого-нибудь есть идеи, которые приводят к этому? Дайте мне знать, какую часть конфигурации вы хотели просмотреть.

2 ответа

Проблема может быть связана с именем вашего пользовательского компонента.filterChainбыть таким же, как и некоторые другие, исходя из контекста. Не могли бы вы попробовать переименовать его?

      @Configuration
@EnableWebSecurity
@RequiredArgsConstructor
@Slf4j
public class WebSecurityConfig {

    final private AuthFilter authFilter;

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

Можете ли вы добавитьWebSecurityConfigвorg.springframework.boot.autoconfigure.AutoConfiguration.importsфайл, который определен в каталоге ресурсов, показанном на изображении.

структура каталогов

Другие вопросы по тегам