Security Config를 체인형식으로 묶어서 사용한다
http
.oauth2Login(oauth2 -> oauth2
.loginPage())
이때 개인설정을 넣을 수 있다.
예로들어 .authorizationEndpoint()
의 baseUri
를 변경하면 인증 요청 uri를 변경 가능하다 .redirectionEndpointConfig()
의baseUri
를 변경하면 리다이렉션시 redirect 주소를 바꿔준다.
/loginPage
는 로그인 페이지를 바꿔준다.
AccessCode를 받을 때 uri에 정보를 담아서 보낸다. 이때 OAuth2.0표준 이외에 추가 정보를 담을 수 있다.
기본은 DefaultOAuth2AuthorizationRequestResolver
가 사용중이가 이걸 Consumer<DefaultOAuth2AuthorizationRequest>
를 구현하여 커스텀 가능하다
아래 2개를 구현해주면 된다.
public class CustomOAuth2AuthorizationRequestResolver implements OAuth2AuthorizationRequestResolver{
@Override
public OAuth2AUthorizationRequest resolve(HttpServletRequest request){
};
@Override
public OAuth2AUthorizationRequest resolve(HttpServletRequest request, String clientRegistrationId){
};
}
기본으로 처리 가능한건 기본으로 설정하고. 원하는 것만 커스텀으로 쓰는것도 가능하다
필터에서 적용은 아래처럼 하면 된다.
http.oauth2Login(auth-> auth.authorizationEndpoint(
endpoint ->endpoint.authorizationRequestResolver(
customOAuth2AuthorizationRequestResolver()
)
);
private OAuth2AuthorizationRequestResolver CustomOAuth2AuthorizationRequestResolver(){
return new CustomOAuth2AuthorizationRequestResolver();
}