본문 바로가기
Dev Daily

[Error] 2024.03.07 spring security 6 에러 모음2

by 빈급 2024. 3. 8.

해결한 에러들

 

1. principalName cannot be empty

 

에러 로그를 잘 보면 OAuth2AuthorizationConsentService에서 난 걸 알 수 있었다. 이 서비스는 OAuth2 권한 부여 요청 흐름의 권한부여 동의를 나타내는 구현체?라고 할 수 있다. 근데 난 이거 필요 없는데.. 이 에러를 해결하기 위해 좀 많은 시도를 했다.

 

1.1 OAuth2AuthorizationConsentService 구현하기

 오류가 나고 있던 부분은 findById 메소드의 파라미터 principalName이 null이 들어오고 있었다. 이 메서드는 유저의 정보가 load? 됐을 때 들어갔어야 했는데.. 왜 안 들어가지..? 했는데 principal에 저장되는 객체에 매핑되는 변수명을 잘못 설정하고 있었다. username이라고 했어야 했는데 user_name으로 하고 있어서 그랬다는.. 암튼 principalName이 null인건 해결했는데.. OAuth2AuthorizationConsent를 return 해야 하는데.. 주석되어 있는 부분... authorities 부분을 아무리 아무리~~ 찾아봐도 구현할 수가 없었다.. 이걸로 하루 날리고.. 결국 해결 방법은..^^

 

2.2 open id 설정 추가하기

oidc 설정을 추가해주는 것. authorization_code 발급 과정에는 consent page가 포함되어 있어서 계속해서 나왔지만.. oic 설정을 추가하면 자동으로 포함되어 있어(이런 표현이 맞나..?) OAuth2AuthoriationConsent 서비스 부분을 구현해주지 않아도 된다.. 나의 하루가 단 한 줄로 해결되었다.. 진짜.. 허무하기 짝이 없는 순간 그 자체..ㅠ 

 

2. accessToken Null

 이건 퇴근 15분전에 난 에러라서 사진을 못 찍었다..ㅋ 사진보다도 해결하는 게 급했기 때문에..

 디버깅 결과

 

토큰을 발급받는 endpoint가 /oauth/token으로 되어있었다.. 전에 사용했던 path를 고치지 않았기 때문에!! 바로 /oauth2/token으로 바꾸니

 

 

 퇴근 5분전 token을 발급받을 수 있었다~!