Hello

9. Authentication객체가 가질수 있는 2가지 타입

by 볼빵빵오춘기

PrincipalOauth2UserService

어느 함수에 어떤걸 호출했는지 확인하고자 Sysout 내용 변경해서 확인해보기

@Override
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
    System.out.println("loadUser() - getClientRegistration : "+userRequest.getClientRegistration()); // 어떤 OAuth로 로그인했는지 확인가능
    System.out.println("loadUser() - getAccessToken : "+userRequest.getAccessToken().getTokenValue());
    // 구글 로그인 버튼 클릭 -> 구글 로그인 창 -> 로그인 완료 -> code를 리턴받음(OAuth-Client라이브러리) -> AccessToken 요청 => 여기까지가 userReequest 정보 
    // userReequest 정보 -> loadUser함수을 통해 구글 회원프로필 받음
    System.out.println("loadUser() - getAttributes : "+super.loadUser(userRequest).getAttributes());

    OAuth2User oAuth2User = super.loadUser(userRequest);
    // 회원가입을 강제로 진행해 볼 예정
    return super.loadUser(userRequest);
}

 

IndexController

@GetMapping("/test/oauth/login")
public @ResponseBody String testLogin(Authentication authentication){
    System.out.println("/test/login");

    OAuth2User oAuth2User = (OAuth2User) authentication.getPrincipal();
    System.out.println("testLogin() - authentication"+oAuth2User.getAuthorities());

    return "OAuth 세션 정보 확인하기";
}

 

PrinciplaDetails

OAuth2User implements 추가하고, 오버라이드한다.

public class PrincipalDetails implements UserDetails, OAuth2User {
@Override
public Map<String, Object> getAttributes() {
    return null;
}

@Override
public String getName() {
    return null;
}

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기