Dans des spring-security-oauth2:2.4.0.RELEASE
classes telles que OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
et ClientCredentialsAccessTokenProvider
ont toutes été marquées comme obsolètes.
À partir du javadoc sur ces classes, il pointe vers un guide de migration de sécurité de printemps qui insinue que les gens doivent migrer vers le projet principal de sécurité de printemps 5. Cependant, j'ai du mal à trouver comment j'implémenterais mon cas d'utilisation dans ce projet.
Toute la documentation et les exemples parlent de l'intégration avec un fournisseur OAuth tiers si vous souhaitez que les demandes entrantes à votre application soient authentifiées et que vous souhaitez utiliser le fournisseur OAuth tiers pour vérifier l'identité.
Dans mon cas d'utilisation, tout ce que je veux faire est de faire une demande avec un RestTemplate
à un service externe protégé par OAuth. Actuellement, je crée un OAuth2ProtectedResourceDetails
avec mon identifiant client et mon secret que je passe dans un OAuth2RestTemplate
. J'ai également ClientCredentialsAccessTokenProvider
ajouté une coutume OAuth2ResTemplate
qui ajoute simplement des en-têtes supplémentaires à la demande de jeton qui sont requis par le fournisseur OAuth que j'utilise.
Dans la documentation de spring-security 5, j'ai trouvé une section qui mentionne la personnalisation de la demande de jeton , mais qui semble être dans le contexte de l'authentification d'une demande entrante avec un fournisseur OAuth tiers. Il n'est pas clair comment vous utiliseriez cela en combinaison avec quelque chose comme un ClientHttpRequestInterceptor
pour vous assurer que chaque demande sortante à un service externe obtient d'abord un jeton, puis obtient celui ajouté à la demande.
Dans le guide de migration lié ci-dessus, il est également fait référence à un document OAuth2AuthorizedClientService
qui, selon lui, est utile pour les intercepteurs, mais encore une fois, il semble qu'il s'appuie sur des choses comme le ClientRegistrationRepository
qui semble être l'endroit où il maintient les enregistrements pour les fournisseurs tiers si vous souhaitez utiliser qui fournissent pour garantir qu'une demande entrante est authentifiée.
Existe-t-il un moyen d'utiliser les nouvelles fonctionnalités de Spring-Security 5 pour enregistrer les fournisseurs OAuth afin d'obtenir un jeton à ajouter aux demandes sortantes de mon application?
WebClient
) ou quelque chose de similaire est utilisé pour récupérer un jeton OAuth à partir d'un fournisseur OAuth personnalisé (pas l'un de ceux pris en charge OoTB comme Facebook / Google) afin de l'ajouter à une demande sortante. Tous les exemples semblent se concentrer sur l'authentification des demandes entrantes avec d'autres fournisseurs. Avez-vous des conseils pour de bons exemples?