Em spring-security-oauth2:2.4.0.RELEASE
classes como OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
e ClientCredentialsAccessTokenProvider
foram 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 RestTemplate
serviço externo protegido por OAuth. Atualmente, crio um OAuth2ProtectedResourceDetails
com meu ID de cliente e um segredo que eu passo para um OAuth2RestTemplate
. Também tenho um personalizado ClientCredentialsAccessTokenProvider
adicionado ao OAuth2ResTemplate
que 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 ClientHttpRequestInterceptor
para 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 à OAuth2AuthorizedClientService
qual ela diz ser útil para uso em interceptores, mas, novamente, parece que ela se baseia em coisas como a ClientRegistrationRepository
que 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?