|
1 | 1 | package com.somemore.global.auth.oauth.service; |
2 | 2 |
|
| 3 | +import com.somemore.global.auth.oauth.domain.CustomOAuth2User; |
| 4 | +import com.somemore.global.auth.oauth.domain.OAuthProvider; |
3 | 5 | import lombok.RequiredArgsConstructor; |
4 | 6 | import lombok.extern.slf4j.Slf4j; |
5 | 7 | import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService; |
|
14 | 16 | @RequiredArgsConstructor |
15 | 17 | public class CustomOAuth2UserService implements OAuth2UserService<OAuth2UserRequest, OAuth2User> { |
16 | 18 |
|
| 19 | + private final DefaultOAuth2UserService oauth2UserService; |
| 20 | + |
17 | 21 | @Override |
18 | 22 | public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { |
19 | 23 | try { |
20 | | - return fetchOAuthUser(userRequest); |
| 24 | + OAuth2User oAuth2User = extractOAuth2User(userRequest); |
| 25 | + OAuthProvider oAuthProvider = extractOAuthProvider(userRequest); |
| 26 | + |
| 27 | + return CustomOAuth2User.of(oAuth2User, oAuthProvider); |
21 | 28 | } catch (OAuth2AuthenticationException e) { |
22 | 29 | log.error("OAuth 사용자 정보를 불러오는 중 문제가 발생했습니다: {}", e.getMessage(), e); |
23 | 30 | throw e; |
24 | 31 | } |
25 | 32 | } |
26 | 33 |
|
27 | | - private OAuth2User fetchOAuthUser(OAuth2UserRequest userRequest) { |
28 | | - OAuth2UserService<OAuth2UserRequest, OAuth2User> oAuth2UserService = new DefaultOAuth2UserService(); |
29 | | - return oAuth2UserService.loadUser(userRequest); |
| 34 | + private OAuth2User extractOAuth2User(OAuth2UserRequest userRequest) { |
| 35 | + return oauth2UserService.loadUser(userRequest); |
| 36 | + } |
| 37 | + |
| 38 | + private OAuthProvider extractOAuthProvider(OAuth2UserRequest userRequest) { |
| 39 | + return OAuthProvider.from(userRequest.getClientRegistration().getRegistrationId()); |
30 | 40 | } |
31 | 41 | } |
0 commit comments