개발공부/Spring

[Spring] Negative matches: Did not match:

jnnjnn 2024. 6. 12. 11:27

 

문제

 

Negative matches:
-----------------

   OAuth2ResourceServerJwtConfiguration.OAuth2SecurityFilterChainConfiguration:
      Did not match:
         - AllNestedConditions 1 matched 1 did not; NestedCondition on DefaultWebSecurityCondition.Beans @ConditionalOnMissingBean (types: org.springframework.security.web.SecurityFilterChain; SearchStrategy: all) found beans of type 'org.springframework.security.web.SecurityFilterChain' filterChain; NestedCondition on DefaultWebSecurityCondition.Classes @ConditionalOnClass found required classes 'org.springframework.security.web.SecurityFilterChain', 'org.springframework.security.config.annotation.web.builders.HttpSecurity' (DefaultWebSecurityCondition)


Exclusions:
-----------

 

jwt 로그인을 구현하던 중 다음과 같은 에러가 떴다.

 

 

원인

@Configuration
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
    }
}

 

SecurityFilterChain을 다음과 같이 SecurityConfig에 등록해서 사용중이었는데 SecurityFilterChain의 Bean을 찾지 못해서 생긴 오류였다.

 

 

해결

1. @EnableWebSecurity 어노테이션 붙이기

@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
    }
}

 

해당 클래스에 @EnableWebSecurity을 붙이면 기본 스프링 필터체인에 등록된다

 

 

2. filterChain ->securityFilterChain으로 이름 변경

@Configuration
public class SecurityConfig {
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    }
}

 

해당되는 이름으로 빈을 등록할 수 있도록 이름을 바꿔준다