인프런 커뮤니티 질문&답변
principal에 대해 궁금한점이 있어서 질문 올립니다.
해결된 질문
작성
·
312
답변 1
3
백기선
지식공유자
좋은 질문 감사합니다. Principal 개념은 명확히 해당 사용자를 지칭하는 거지만 그걸 구현을 어떻게 할꺼냐는 정해진게 없기 때문에 정하기 나름입니다. 보통의 경우에는 사용자의 id 또는 이메일이나 유저네임에 해당하는 String을 Principal로 사용할 수도 있을것이고, 어떤 경우에는 사용자에 해당하는 도메인 객체를 Principal로 사용할 수도 있습니다. 그 도메인 객체가 id와 password를 가지고 있을 수도 있는거죠.
스프링 시큐리티에서 Principal은 이 수업에서 설명드린대로 UserDetailsService에서 리터한 UserDetails 타입의 객체입니다. 그 객체에 담겨있는 모든 정보가 Principal을 구성하는 정보가 되는거고, UserDetails라는 인터페이스를 구현한 클래스를 만들어 제공하면 얼마든지 추가 정보를 가지고 있는 Principal을 만들 수도 있습니다.





