• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

23.03.02 18:29 작성 조회수 440

0

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

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

답변 1

답변을 작성해보세요.

0

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

jeidiiy님의 프로필

jeidiiy

질문자

2023.03.02

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

아 네

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

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

jeidiiy님의 프로필

jeidiiy

질문자

2023.03.03

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