728x90
Authorization BaseUrl


- authorizationEndpoint().baseUrl(“/oauth2/v1/authorization”) 은 권한 부여 요청 BaseUri를 커스텀한다
- 1단계 권한 부여 요청을 처리하는 OAuth2AuthorizationRequestRedirectFilter 에서 요청에 대한 매칭여부를 판단한다
- 설정에서 변경한 값이 클라이언트의 링크 정보와 일치하도록 맞추어야 한다
Redirection BaseUrl

- redirectionEndpoint.baseUri("/login/v1/oauth2/code/*") 은 인가 응답의 baseUri를 커스텀한다
- Token 요청을 처리하는 OAuth2LoginAuthenticationFilter 에서 요청에 대한 매칭여부를 판단한다
- applicztion.yml 설정 파일에서 registration 속성의 redirectUri 설정에도 변경된 값을 적용해야 한다
- 인가서버의 redirectUri 설정에도 변경된 값을 적용해야 한다
- loginProcessingUrl("/login/v1/oauth2/code/*")를 설정해도 결과는 동일하지만 redirectionEndpoint.baseUri 가 더 우선이다
Test
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(authRequest -> authRequest.antMatchers("/login").permitAll()
.anyRequest().authenticated());
http.oauth2Login(oauth2 -> oauth2.loginPage("/login")
.loginProcessingUrl("/login/oauth2/code/*") //둘다 사용할 수 있지만 우선순위가 redirectEndpoint 설정이 더 높기 떄문에 적용되지 않는다.
.authorizationEndpoint(authorizationEndpointConfig ->
//authorizationEndpointConfig.baseUri("/oauth2/authentication/**"))) //기본값
authorizationEndpointConfig.baseUri("/oauth2/v1/authorization"))
.redirectionEndpoint(redirectionEndpointConfig ->
//redirectionEndpointConfig.baseUri("/login/oauth2/code/*")) //기본값
redirectionEndpointConfig.baseUri("/login/v1/oauth2/code/*"))
);
return http.build();
}


- authorizationEndpoint 설정 같은 경우 기본값으로 "oauth2/authentication/{registrtionId}"가 기본값이다.
- 해당 값을 변경하게 된다면, 인증 화면 또한 해당 URL로 변경이 된다.
- redirectionEndpoint 같은 경우 기본값으로 "/login/v1/oauth2/code/*"이 기본값이다.
- 해당 값을 변경하게 된다면, 인증 서버의 Valid redirect URI 도 변경하여야 하며, application.yml에 설정한 값 또한 변경해야 한다.
- loginProcessingUrl 이랑 둘 다 설정할 수 있지만 우선순위는 redirectionEndPoint 가 높기 때문에, 둘 다 설정 시에는 redirectionEndPoint만 적용이 된다
728x90
'스프링 시큐리티 OAuth2 > OAuth2LoginConfigurer 초기화 이해' 카테고리의 다른 글
| API 커스텀 구현 - OAuth2AuthorizationRequestResolver (0) | 2023.01.24 |
|---|---|
| OAuth2 로그인 구현 - Spring MVC 인증 객체 참조하기 (0) | 2023.01.24 |
| OAuth2 로그인 구현 - OpenID Connect 로그아웃 (0) | 2023.01.23 |
| OAuth2 로그인 구현 - UserInfo 엔드포인트 요청하기 (0) | 2023.01.22 |
| OAuth2 로그인 구현 - Oauth 2.0 User 모델 소개 (0) | 2023.01.17 |