@AuthenticationPrincipal null 현상 해결이 되지 않습니다 .. ㅠㅠ
1262
작성한 질문수 1
Filter 처리 후 SecurityContextHolder에 주입
그 후 컨트롤러에서 @AuthenticationPrincipal 로 가져올 시 null 현상이 일어납니다.
컨트롤러 단에서 SecurityContextHolder 에서 꺼내서 Principal 가져올 시 존재하는데
어노테이션을 통하여 사용하려고 하니 null 이 뜨네요..
혹시 무언가 잘못된 부분이 있을까요 ..?
Security 인증은 따로 사용하지 않고 있습니다.
Spring Cloud Gateway ->모듈 Fileter -> Controller 로 사용중입니다.
SCG에서 토큰 검증 후 uid를 모듈로 넘겨준 후 공통으로 사용하기 위해 AuthenticationPrincipal를 사용하려 합니다.
FIlter

TokenProvider
Test Controller

User Entity UserDetails Override

답변 1
-1
안녕하세요, 인프런 AI 인턴이에요. Spring Security에서 @AuthenticationPrincipal 어노테이션을 사용하여 Principal을 가져올 때 null 현상이 발생하는 문제를 겪고 계시군요.
@AuthenticationPrincipal 어노테이션은 Spring Security에서 인증된 사용자를 가져오기 위해 사용됩니다. 하지만 어떤 이유로 인해 해당 어노테이션을 통해 Principal을 가져오지 못하는 문제가 발생할 수 있습니다.
먼저, Filter에서 SecurityContextHolder에 Principal을 설정하신 후에 컨트롤러에서 @AuthenticationPrincipal 어노테이션을 통해 가져올 때 null 현상이 발생하는 상황이라고 이해했습니다. 이 경우에는 FilterChain을 통해 요청이 처리되고 난 뒤에 Principal이 설정되어야 합니다.
Filter에서 SecurityContextHolder에 Principal을 설정하는 코드가 어떻게 되어 있는지 확인하시고, 설정하는 시점과 Principal을 가져오는 시점이 일치하는지 확인해보세요. Principal을 설정하는 시점이 요청 처리 이후일 경우, 컨트롤러에서는 아직 Principal이 설정되지 않은 상태이기 때문에 null이 반환될 수 있습니다.
또한, Filter와 Controller 사이에서 Principal을 공유하기 위해 사용하시는 방법이 올바른지도 확인해보세요. 요청이 처리되는 동안 Principal이 유지되어야 하는데, 어떤 이유로 인해 Principal이 삭제되었을 수도 있습니다.
만약 위의 확인 과정으로 문제를 해결하지 못하신다면, 좀 더 구체적인 코드나 설정 내용을 제공해주시면 더 나은 도움을 드릴 수 있을 것 같아요. 하지만, Filter와 SecurityContextHolder, Principal을 사용하는 부분은 복잡한 상황일 수 있으므로, 해당 문제에 대한 해결책을 찾기 어렵다면 Spring Security 공식 문서나 Spring Security 커뮤니티에서 도움을 얻을 수 있을 거예요.
요청하셨던 내용에 대한 답변이 도움이 되었길 바랍니다. 어떠한 추가 질문이나 도움이 필요하시면 언제든지 말씀해주세요. 좋은 하루 되세요!
UGS 라이센스 및 요금제 관련
0
58
1
코드 공유
0
85
1
prisma 버전 변경
0
135
2
추가 강의 요청?
0
67
1
게시글 답변 관련 Group Order가 계속 0이 삽입되네요 ㅠ
0
87
2
로그인 시 왜 계속 조회된 아이디가 없을까요ㅠ
0
86
2
개발자 파크형 궁금해~~
0
75
1
[강의 요청] 간단한 2D RPG + UGS 활용 강의를 요청드려도 괜찮을까요?
0
177
2
구글 연동
0
127
2
AddListener와 async 사용
0
142
2
Run시 에러가 발생합니다.
0
162
3
[질문] ID 와 Password 방식으로 가입하는 방식 관련 질문이 있습니다.
0
158
2
SendEmailAsync 클래스에서 빌드 에러가 발생합니다!
0
154
2
강의 소스 코드
1
211
2
강사님의 강의 소스코드
1
212
1
깃허브 레포지토리로 버전관리하기
2
410
1
async, await 질문
1
342
1
파라미터 문의
1
479
4
소스코드는 어디서 받을 수 있나요..?
1
272
1
라우터 함수를 비동기함수로 작성하셨다가 동기함수로 작성하시기도 하는 이유가 궁금합니다.
1
215
1
좀 더 맛깔나게 써봅시다! / 질문
0
329
3
엔드포인트와 HTTP메서드! _ 강좌에서 질문 있습니다
1
266
2
엔드포인트와 HTTP 메서드! / 질문
1
301
2
Security WebSecurityConfigurerAdapter Deprecated Issue
0
267
1





