에러

SpringSecurity 에러들

일일일코_장민기 2024. 5. 15. 22:46
728x90
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-05-15T20:13:37.618+09:00 ERROR 9376 --- [whatShouldIWearToday] [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean 'springSecurityFilterChain', defined in class path resource [org/member/springSecurity/system/SpringSecurityConfig.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

 

SecurityFilterChain의 명칭이 springSecurityFilterChain이 되어 있는 경우에 발생했다

다른 명칭으로 바꾸면 해결된다

ex) springSecurityFilterChain --> securityFilterChain

 

 

 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-05-15T20:15:26.953+09:00 ERROR 5776 --- [whatShouldIWearToday] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in org.member.springSecurity.system.SpringSecurityConfig required a bean of type 'org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration' that could not be found. Action: Consider defining a bean of type 'org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration' in your configuration.

 

SpringSecutiryConfig의 클래스 어노테이션에서 에러가 발생했다.

@EnableWebSecurity가 입력되어야 하는데 @EnableWebMvc가 입력되지 않았는지 확인해보자.

 

 

 

JWT를 만들 때 이상하게 만들어지는 현상

Create JWT를 보면 country와 area의 위치가 바뀌어있다.

당연히 그렇게 만들려는 의도는 없다.

public String createJwt(String username, String area, String country, String role, Long expiredMs) {
    log.info("Create JWT: {}, {}, {}, {}", username, country, area, role);
    return Jwts.builder()
            .claim("username", username)
            .claim("country", country)
            .claim("area", area)
            .claim("role", role)
            .issuedAt(new Date(System.currentTimeMillis()))
            .expiration(new Date(System.currentTimeMillis() + expiredMs))
            .signWith(key)
            .compact();
}

 

계속 보다 보니 변수의 위치가 바뀌어 있었다.

즉, 변수의 위치에 따라 country와 area가 바뀌어 인식되는 것이었다.