Em spring-security-oauth2:2.4.0.RELEASEclasses como OAuth2RestTemplate, OAuth2ProtectedResourceDetailse ClientCredentialsAccessTokenProviderforam todos marcados como obsoletos.
No javadoc dessas classes, ele aponta para um guia de migração de segurança de primavera que insinua que as pessoas devem migrar para o projeto principal de segurança de primavera 5. No entanto, estou tendo problemas para descobrir como implementaria meu caso de uso neste projeto.
Toda a documentação e exemplos falam sobre a integração com um provedor OAuth de terceira parte, se você deseja que as solicitações recebidas para seu aplicativo sejam autenticadas e deseja usar o provedor OAuth de terceiros para verificar a identidade.
No meu caso de uso, tudo o que quero fazer é solicitar com um RestTemplateserviço externo protegido por OAuth. Atualmente, crio um OAuth2ProtectedResourceDetailscom meu ID de cliente e um segredo que eu passo para um OAuth2RestTemplate. Também tenho um personalizado ClientCredentialsAccessTokenProvideradicionado ao OAuth2ResTemplateque apenas adiciona alguns cabeçalhos extras à solicitação de token exigidos pelo provedor OAuth que estou usando.
Na documentação do spring-security 5, encontrei uma seção que menciona a personalização da solicitação de token , mas, novamente, parece estar no contexto de autenticação de uma solicitação de entrada com um provedor OAuth de terceiros. Não está claro como você usaria isso em combinação com algo como a ClientHttpRequestInterceptorpara garantir que cada solicitação de saída para um serviço externo obtenha primeiro um token e depois adicione isso à solicitação.
Também no guia de migração vinculado acima, há uma referência à OAuth2AuthorizedClientServicequal ela diz ser útil para uso em interceptores, mas, novamente, parece que ela se baseia em coisas como a ClientRegistrationRepositoryque parece estar onde mantém registros para provedores de terceiros, se você quiser usar que fornecem para garantir que uma solicitação recebida seja autenticada.
Existe alguma maneira de fazer uso da nova funcionalidade do spring-security 5 para registrar provedores OAuth para obter um token a ser adicionado às solicitações de saída do meu aplicativo?
WebClient) ou algo semelhante é usado para buscar um token OAuth de um provedor OAuth personalizado (não um dos suportados pelo OoTB como o Facebook / Google) para adicioná-lo a uma solicitação de saída. Todos os exemplos parecem focar na autenticação de solicitações recebidas com outros provedores. Você tem alguma indicação de bons exemplos?