스프링 OAuth2 클라이언트 세션 14 : OAuth2LoginAuthenticationFilter
·
Spring Security/OAuth2
로그인 성공 redirect_uri 필터 : /login/oauth2/code/서비스명 OAuth2LoginAuthenticationFilter는 인증 서버에서 로그인을 성공한 뒤 우리 서버측으로 발급되는 CODE를 획득하고, CODE를 통해 Access 토큰과 User 정보를 획득하는 OAuth2LoginAuthenticationProvider를 호출하는 일련의 과정을 시작하는 필터이다. OAuth2LoginAuthenticationFilterOAuth2LoginAuthenticationFilter는 /login/oauth2/code/서비스명 경로에 대해서 CODE를 받는 필터이다.이후 검증을 진행하고 완료되면 OAuth2LoginAuthenticationProvide를 호출한다.public class..
스프링 OAuth2 클라이언트 세션 13 : OAuth2AuthorizationRequestRedirectFilter
·
Spring Security/OAuth2
로그인 페이지에서 : /oauth2/authorization/서비스로그인 페이지에서 GET : /oauth2/authorization/서비스 경로로 요청을 할 경우 OAuth2 의존성에 의해 OAuth2AuthorizationRequestRedirectFilter에서 해당 요청을 받고 내부 프로세서를 진행한다. OAuth2AuthorizationRequestRedirectFilter는 요청을 받은 후 해당하는 서비스의 로그인 URI로 요청을 리디렉션 시킨다. (이때 서비스의 정보는 지난 번에 등록한 ClientRegistrationRepository에서 가져온다.)OAuth2AuthorizationRequestRedirectFilterOAuth2AuthorizationRequestRedirectFilte..
스프링 OAuth2 클라이언트 세션 12 : ClientRegistration
·
Spring Security/OAuth2
자료ClientRegistrationhttps://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/oauth2/client/registration/ClientRegistration.htmlClientRegistrationRepositoryhttps://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/oauth2/client/registration/ClientRegistrationRepository.htmlOAuth2 서비스 변수 등록 방법기존에 application.properties 변수 설정 파일에서 설정했..
스프링 OAuth2 클라이언트 세션 11 : 커스텀 로그인 페이지
·
Spring Security/OAuth2
기본 OAuth2 로그인 페이지GET : /login커스텀 로그인 페이지 설정login.mustachelogin pagenaver logingoogle login controller > LoginController@Controllerpublic class LoginController { @GetMapping("/login") public String loginPage() { return "login"; }}SecurityConfig OAuth2 커스텀 로그인 페이지 등록config > SecurityConfighttp .oauth2Login((oauth2) -> oauth2 .loginPage("/login") .userInfoEndpoint..
스프링 OAuth2 클라이언트 세션 6 : 네이버 소셜 로그인 신청
·
Spring Security/OAuth2
네이버 로그인 API 공식 문서https://developers.naver.com/products/login/api/api.md 네이버 로그인 - INTRO환영합니다 네이버 로그인의 올바른 적용방법을 알아볼까요? 네이버 로그인을 통해 신규 회원을 늘리고, 기존 회원은 간편하게 로그인하게 하려면 제대로 적용하는 것이 중요합니다! 이에 올바developers.naver.com네이버 로그인 API 신청네이버 개발자센터 -> 네이버 로그인 APIClientID와 Client Secret를 스프링 부트 application.properties OAuth2 변수에 설정하면 된다.변수 설정application.perperties#registrationspring.security.oauth2.client.registr..
스프링 OAuth2 클라이언트 세션 5 : SecurityConfig 등록
·
Spring Security/OAuth2
SecurityConfigconfig > SecurityConfig@Configuration@EnableWebSecuritypublic class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf((csrf) -> csrf.disable()); http .formLogin((login) -> login.disable()); http .httpBasic((basic) -> basic.disable()); http ..
스프링 OAuth2 클라이언트 세션 4 : OAuth2 변수 역할
·
Spring Security/OAuth2
OAuth2 소셜 로그인을 위한 변수 설정위의 각각의 로직이 동작을 하기 위해서는 서비스별로 특정 값이 필요하기 때문에 변수 설정이 필요하다. application.properties#registrationspring.security.oauth2.client.registration.서비스명.client-name=서비스명spring.security.oauth2.client.registration.서비스명.client-id=서비스에서 발급 받은 아이디spring.security.oauth2.client.registration.서비스명.client-secret=서비스에서 발급 받은 비밀번호spring.security.oauth2.client.registration.서비스명.redirect-uri=서비스에 등록..
스프링 OAuth2 클라이언트 세션 3 : 동작 원리
·
Spring Security/OAuth2
동작 모식도 : OAuth2 코드 방식각각의 필터가 동작하는 주소 (관습)OAuth2AuthorizationRequestRedirectFilter/oauth2/authorization/서비스명/oauth2/authorization/naver/oauth2/authorization/google OAuth2LoginAuthenticationFilter : 외부 인증 서버에 설정할 redirect_uri/login/oauth2/code/서비스명/login/oauth2/code/naver/login/oauth2/code/googleOAuth2 인증 및 동작을 위한 변수들변수 설정만 진행하면 OAuth2AuthorizationRequestRedirectFilter -> OAuth2LoginAuthentication..
스프링 OAuth2 클라이언트 세션 2 : 프로젝트 생성 및 의존성 추가
·
Spring Security/OAuth2
의존성https://start.spring.io/필수 의존성LombokSpring WebMustacheSpring SecurityOAuth2 ClientSpring Data JPAMariaDB Driver데이터베이스 의존성 주석 처리임시로 주석 처리 진행 (스프링 부트에서 데이터베이스 의존성을 추가한 뒤 연결을 진행하지 않을 경우 런타임 에러 발생)기본 컨트롤러 및 VIEW 생성MainControllerimport org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody;@Con..