Principal 관련 질문

해결됨
김태수 프로필

먼저 좋은 강의 감사합니다. 스프링 시큐리티 이해에 있어 큰 도움이 되었습니다. :)

OAuth을 사용한 구글로그인 관련 내용은 강의 범위에 없어서 혹시 질문이 부적절하면 답변 안해주셔도 됩니다.

OAuth 구글로그인을 이용한 기능을 추가하였는데

기존 formLogin을 사용하여 로그인을 하면 Principal이 `UserDetails`이고

OAuth를 사용하여 로그인을 하면 Principal이 `DefaultOidcUser`입니다.

OAuth를 추가하기 전 코드들이 UserDetails로 맞춰 코딩하여 Principal이 `DefaultOidcUser` 일 때 캐스팅 오류가 발생합니다.

이 경우 formLogin과 OAuth를 사용한 로그인을 통합으로 관리하고 싶다면 어떻게 해야하는지 궁금합니다.

감사합니다.

백기선 프로필
백기선 6달 전

폼 로그인과 OAuth 로그인 둘 을 맞추려면 둘의 Principal의 상세 객체 타입이 다를거라는걸 고려해서 고딩하거나 Principal 이라는 인터페이스로만 코딩을 하거나, 두 인증 처리 필터의 결과를 동일한 객체로 감싸는 커스터마이징을 해야 할겁니다.

감사합니다.

김태수 프로필
김태수 6달 전

답변 감사합니다 :) 

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스