implementation('org.springframework.boot:spring-boot-starter-oauth2-client')
spring-boot-starter-oauth2-client
- 소셜 로그인 등 클라이언트 입장에서 소셜 기능 구현 시 필요한 의존성
- spring-security-oauth2-client와 spring-security-oauth2-jose를 기본으로 관리
2.config.auth package 생성
3.SecurityConfig 클래스 생성
4.CustomOAuth2UserService 클래스 생성
5.OAuthAttributes 클래스 생성
6.SessionUser 클래스 추가
User 클래스가 아닌 SessionUser 사용?
: 세션에 저장하기 위해 User 클래스를 세션에 저장하려고 하면, 에러 발생=> 직렬화를 구현하지 않았기 때문
- User 클래스는 엔티티기 때문에, 다른 엔티티와 관계 형성을 하기도 함
즉, 성능 이슈나 부수 효과 발생 확률 UP
=> 직렬화 기능 가진 세션 Dto 하나를 추가로 만들어서 운영 및 유지보수
==============================================
SessionUser user = (SessionUser) httpSession.getAttribute("user");
1.@LoginUser
어노테이션 생성
config.auth 패키지에 @LoginUser 어노테이션 생성
2.LoginUserArgumentResolver 생성
HandlerMethodArgumentResolver는 1가지 기능을 지원한다.
: 구현체가 지정한 값으로 해당 메소드의 파라미터로 넘길 수 있음
-> @LoginUser
사용하기 위한 환경 구성됨
3.스프링에서 인식될 수 있도록 WebMvcConfigurer에 추가하기
4.config 패키지에 WebConfig 클래스 생성
HandlerMethodResolver는 항상 WebMvcConfiguration의
addArgumentResolvers()
통해 추가해야 함