인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

식빵님의 프로필 이미지

작성한 질문수

스프링 시큐리티

5) DB 연동 인증 처리(2) : CustomAuthenticationProvider

CustomAuthenticationProvider 에서 token의 principal 값 설정

해결된 질문

작성

·

336

0

CustomAuthenticationProvider 에서 인증 token의 principal 값 설정하시는 코드가 있습니다.

new UsernamePasswordAuthenticationToken(accountContext.getAccount(), null, accountContext.getAuthorities());

여기서는 principal 값으로 Account 엔티티( = accountContext.getAccount) 를 넣는데요,

왜 spring security에서 제공하는 User 클래스를 상속한 

AccountContext가 아닌 Account 엔티티를 주었는지 궁금합니다.

답변 1

3

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

말씀하신 것 처럼 AccountContext 객체를 넣어도 상관없습니다.

principal 에 저장한 값을 상황에 맞게 핸들링 하시면 됩니다.

다만 강좌에서는 principal 에 wrapper 클래스인 AccountContext 를 넣지 않고 바로 Account 클래스를 참조하도록 했을 뿐입니다.

다만 참고하실 점은 principal 속성은 인증객체 자체를 의미하기 때문에 Wrapper 클래스보다는 Account 객체가 좀 더 의미에 가까울 수 있다고 생각합니다.

그러나 정해진 기준은 없으니 자유롭게 구현하시면 됩니다.

식빵님의 프로필 이미지

작성한 질문수

질문하기