해결된 질문
작성
·
504
0
파라미터로 Authentication 객체를 받아오면 Null이고 직접 SecurityContextHolder에서 꺼내오면 anonymousUser가 들어있는 이유가 뭔가요?
Authentication 파라미터도 관련 ArgumentResolver에서 SpringSecurityContextHolder.getContext().getAuthentication()으로 꺼내오는 것이 아닌가요?
답변 1
0
아 네
파라미터로 선언된 Authentication 은 인증되지 않은 사용자 즉 익명사용자를 참조하지 않습니다. 즉 메소드에서 파라미터로 선언된 Authentication 은 인증사용자 정보를 바인딩 해주는 역할입니다. 그래서 만약 인증받지 않으면 익명사용자가 아닌 null 로 바인딩 됩니다.
그렇지만 SpringSecurityContextHolder.getContext().getAuthentication() 은 인증이든 익명이든 현재 사용자의 인증상태를 참조할 수 있습니다.
OAuth 2.0 Client - oauth2Client() 파트의 OAuth2AuthorizedClient 이해 및 활용의 43:17 입니다.