
com/deeplify/tutorial/oauthlogin
├── OauthLoginApplication.java
├── api
│ ├── controller
│ │ ├── auth
│ │ │ └── AuthController.java
│ │ └── user
│ │ └── UserController.java
│ ├── entity
│ │ ├── auth
│ │ │ └── AuthReqModel.java
│ │ └── user
│ │ ├── User.java
│ │ └── UserRefreshToken.java
│ ├── repository
│ │ └── user
│ │ ├── UserRefreshTokenRepository.java
│ │ └── UserRepository.java
│ └── service
│ └── UserService.java
├── common
│ ├── ApiResponse.java
│ └── ApiResponseHeader.java
├── config
│ ├── properties
│ │ ├── AppProperties.java
│ │ └── CorsProperties.java
│ └── security
│ ├── JwtConfig.java
│ └── SecurityConfig.java
├── oauth
│ ├── entity
│ │ ├── ProviderType.java
│ │ ├── RoleType.java
│ │ └── UserPrincipal.java
│ ├── exception
│ │ ├── OAuthProviderMissMatchException.java
│ │ ├── RestAuthenticationEntryPoint.java
│ │ └── TokenValidFailedException.java
│ ├── filter
│ │ └── TokenAuthenticationFilter.java
│ ├── handler
│ │ ├── OAuth2AuthenticationFailureHandler.java
│ │ ├── OAuth2AuthenticationSuccessHandler.java
│ │ └── TokenAccessDeniedHandler.java
│ ├── info
│ │ ├── OAuth2UserInfo.java
│ │ ├── OAuth2UserInfoFactory.java
│ │ └── impl
│ │ ├── FacebookOAuth2UserInfo.java
│ │ ├── GoogleOAuth2UserInfo.java
│ │ ├── KakaoOAuth2UserInfo.java
│ │ └── NaverOAuth2UserInfo.java
│ ├── repository
│ │ └── OAuth2AuthorizationRequestBasedOnCookieRepository.java
│ ├── service
│ │ ├── CustomOAuth2UserService.java
│ │ └── CustomUserDetailsService.java
│ └── token
│ ├── AuthToken.java
│ └── AuthTokenProvider.java
└── utils
├── CookieUtil.java
└── HeaderUtil.java