스프링 부트 2.6 부터는 순환 참조가 기본적으로 금지되어 있다. 따라서 이를 허용시키고 싶다면 application.properties 파일에 spring.main.allow-circular-references=true를 추가해야 한다.
로그인 요청이 들어오면 OAuth 서비스 제공 서버로 요청을 리다이렉트 시킨다.
OAuth2.0 인증이 완료된 사용자 정보를 메모리(InMemoryOAuth2AuthorizedClientService)에 저장하고 있다. 이는 OAuth2.0 으로 인증되는 클라이언트가 많아질 경우 Out Of Memory Error를 발생시킬 수 있으므로 DB에 저장하도록(JdbcOAuth2AuthroizedClientService) 변경할 수 있다.
@Bean
public OAuth2AuthorizedClientService authorizedClientService(
JdbcOperations jdbcOperations,
ClientRegistrationRepository clientRegistrationRepository
) {
return new JdbcOAuth2AuthorizedClientService(jdbcOperations, clientRegistrationRepository);
}
...
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ... 생략 ...
.oauth2Login()
.authorizedClientRepository(getApplicationContext().getBean(AuthenticatedPrincipalOAuth2AuthorizedClientRepository.class))
.and()
;
}