Spring Security OAuth2를 이용한 로그인 구현 - 사용자 정보 가져오기
목차 Spring Security OAuth2 - Handler Spring Security OAuth2 - Login 페이지 Customizing 하기 Spring Security OAuth2를 이용한 로그인 구현 - 사용자 정보 가져오기 Spring Security OAuth2를 이용한 로그인 구현 - Spring boot OAuth2 인증 살펴보기 Spring Security OAuth2를 이용한 로그인 구현 - OAuth2를 이용한 인증 사용하기 Google OAuth2 인증 방식 이해하기 OAuth2를 이용한 로그인 구현 이해하기 2. Resource Server로부터 사용자 정보 가져오기Spring Security 설정하기OAuth2 인증을 마친 후에 Resource Server로부터 사용자 정보를 가져오기 위해서는 UserInfo EndPoint에 접근할 필요가 있다. HttpSecurity객체의 oauth2Login().userInfoEndpoint().userService() 메소드를 이용해서 UserInfo EndPoint로부터 사용자 정보를 가져올 Service를 등록한다. @EnableWebSecurity@RequiredArgsConstructorpublic class SecurityConfig extends WebSecurityConfigurerAdapter { private final CustomOAuth2UserService customOAuth2UserService; @Override protected void configure(HttpSecurity http) throws Exception { http .antMatcher("/**").authorizeRequests() .antMatchers("/").permitAll() .anyRequest().authenticated(); http .oauth2Login() .userInfoEndpoint() .userService(customOAuth2UserService); }} 스프링에서 기본적으로 제공하는 OAuth2ProviderGoogle, Facebook, Github 등을 통해 OAuth2인증하기 위한 기본적인 설정값들이 들어가 있다. 해당 정보를 통해 ClientRegistration 객체를 생성한다. authorizationUri 인증을 진행하기 위해 사용하는 URI tokenUri Resource server로부터 access token을 받기 위해 사용하는 URI jwkSetUri token의 유효성(서명)을 확인할 수 있는 public key(JSON Web Key)를 받을 수 있는 URI userInfoUri Resource Server(ex. Google)로부터 사용자 정보를 가져오기 위한 URI userNameAttributeName Resource server가 제공하는 id값 clientName Resource Server 이름(client Name을 사용할 때도 있다.)