인프런 커뮤니티 질문&답변

jeidiiy님의 프로필 이미지
jeidiiy

작성한 질문수

스프링 시큐리티 OAuth2

OAuth2AuthorizedClient 이해 및 활용

Authentication를 받아오는 차이가 뭔가요?

해결된 질문

작성

·

504

0

파라미터로 Authentication 객체를 받아오면 Null이고 직접 SecurityContextHolder에서 꺼내오면 anonymousUser가 들어있는 이유가 뭔가요?

Authentication 파라미터도 관련 ArgumentResolver에서 SpringSecurityContextHolder.getContext().getAuthentication()으로 꺼내오는 것이 아닌가요?

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

어떤 상황에서의 코드인지 좀 더 설명해 주시겠어요?

jeidiiy님의 프로필 이미지
jeidiiy
질문자

OAuth 2.0 Client - oauth2Client() 파트의 OAuth2AuthorizedClient 이해 및 활용의 43:17 입니다.

정수원님의 프로필 이미지
정수원
지식공유자

아 네

파라미터로 선언된 Authentication 은 인증되지 않은 사용자 즉 익명사용자를 참조하지 않습니다. 즉 메소드에서 파라미터로 선언된 Authentication 은 인증사용자 정보를 바인딩 해주는 역할입니다. 그래서 만약 인증받지 않으면 익명사용자가 아닌 null 로 바인딩 됩니다.

그렇지만 SpringSecurityContextHolder.getContext().getAuthentication() 은 인증이든 익명이든 현재 사용자의 인증상태를 참조할 수 있습니다.

jeidiiy님의 프로필 이미지
jeidiiy
질문자

아하 그런 차이가 있었군요! 감사합니다!! 궁금증이 해결됐습니다!

jeidiiy님의 프로필 이미지
jeidiiy

작성한 질문수

질문하기