스프링 시큐리티 OAuth 2.0 오류

Junyeong·2022년 2월 25일
0

자바와 친구들

목록 보기
4/5

현재 진행중인 개인프로젝트에서 로그인 설정을 jwt로 하다가 session 으로 교체중이다.
그 과정에서 에러가 생겼는데,, 너무 간단한 걸 어이없게 해맸어서 기록으로 남긴다!


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain'

위에서 말하는 것처럼 SpringSecurityFilterChain 의 빈을 생성할 수 없다는 에러는 경우의 수가 3개가 있다.

  • gradle 또는 maven 에 dependency 추가하기.
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-core</artifactId>
  <version>2.3.0.1</version>
</dependency>

<dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.3.1</version>
</dependency>

<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.1</version>
</dependency>

아래는 gradle

implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1'
	implementation 'javax.xml.bind:jaxb-api:2.3.1'
	implementation 'com.sun.xml.bind.jaxb-impl:2.3.1'

스택오버플로우에 보면 자바11에러라고 한다.
때문에 위의 의존성을 추가하면 해결.

  • 어노테이션 확인하기

간단하게도 알고봤더니 빈 생성 코드를 정말 안넣은 경우도 있다.
@Configuration 을 직접 넣어줘도 되고
@EnableWebSecurity 만 넣어줘도 된다.

  • 의존성 확인하기

만약 gradle 또는 maven에 spring-boot starter-tomcat .. 이런 이름이 있다면 에러가 날 수 있다.
이미 스프링 부트 자체가 tomcat을 내장하고 있는데 하나가 더 추가되서 그런 것이다.


Can't configure antMatchers after anyRequest

이 에러는 생각보다 정보가 없었다.
그럴 수 밖에 없는게 에러 메시지를 잘 읽어보면 뭐랄까 이건 근본적인 문제가 아니기 때문이다.

이 에러가 떴을 경우에는 굳이 구글링하며 애쓰기 보단, antMatcher 쪽에 주석처리를 하고 다시 시작해보자.


can't configure anyrequest after itself

다시 시작해보면 위와 같은 에러로 바뀔 것이다.
원래 첫번째 에러 메시지때 영어를 잘 하시는 분들이라면 바로 알 수도 있었을 것 같은데, 나는 이 메시지를 보고서야 잘못된 부분이 뭔지 알았다.

이 에러 메시지는 결국 anyrequest가 반복되고 있다는 말이고, 따라서 spring security 흐름 중에 어느 부분에서 내가 예상치 못한 호출이 되고 있는지 봐야한다.

대부분의 경우 아주 어이없게도 super() 콜에서 호출하고 있는 경우가 많다.
https://stackoverflow.com/questions/59004025/spring-security-error-java-lang-illegalstateexception-cant-configure-anyreque

profile
좋아하는 것을 계속 좋아하자.

0개의 댓글