Inicialização social do Spring Boot e do OAuth2, não é possível obter a atualizaçãoToken
Há um guia sobre como implementar o OAuth2 usando Spring e Spring Boothttps://spring.io/guides/tutorials/spring-boot-oauth2/
Preciso armazenar informações do OAuth2 como accessToken, refreshToken no meu banco de dados para uso futuro. No momento, só posso obter o accessToken. Não consigo descobrir como obter o refreshToken com base neste guia.
Qual é a maneira correta de obter o refreshToken usando a abordagem descrita neste guia?
ATUALIZADA
Eu tenho acesso arefreshToken
noOAuth2ClientAuthenticationProcessingFilter.attemptAuthentication
método, mas apenasaccessToken
está paased paraResourceServerTokenServices.loadAuthentication
método.
No momento, não entendo como obter informações do OAuth2 com base nessa abordagem após uma autorização bem-sucedida no Facebook e reutilizá-las para chamadas da API do Facebook. Por favor informar.
ATUALIZADA
Eu adicioneiJdbcClientTokenServices
para o meu filtro SSO, mas não funciona
private Filter ssoFilter(ClientResources client, String path) {
OAuth2ClientAuthenticationProcessingFilter clientFilter = new OAuth2ClientAuthenticationProcessingFilter(path);
OAuth2RestTemplate oAuth2RestTemplate = new OAuth2RestTemplate(client.getClient(), oauth2ClientContext);
//
AccessTokenProviderChain tokenProviderChain = new AccessTokenProviderChain(new ArrayList<>(Arrays.asList(new AuthorizationCodeAccessTokenProvider())));
tokenProviderChain.setClientTokenServices(new JdbcClientTokenServices(dataSource));
oAuth2RestTemplate.setAccessTokenProvider(tokenProviderChain);
//
clientFilter.setRestTemplate(oAuth2RestTemplate);
clientFilter.setTokenServices(new OkUserInfoTokenServices(okService, client.getClient().getClientId(), apiUrl, eventService));
clientFilter.setAuthenticationSuccessHandler(new UrlParameterAuthenticationHandler());
return clientFilter;
}