Dans des spring-security-oauth2:2.4.0.RELEASEclasses telles que OAuth2RestTemplate, OAuth2ProtectedResourceDetailset ClientCredentialsAccessTokenProvideront 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 OAuth2ProtectedResourceDetailsavec mon identifiant client et mon secret que je passe dans un OAuth2RestTemplate. J'ai également ClientCredentialsAccessTokenProviderajouté une coutume OAuth2ResTemplatequi 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 ClientHttpRequestInterceptorpour 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 OAuth2AuthorizedClientServicequi, selon lui, est utile pour les intercepteurs, mais encore une fois, il semble qu'il s'appuie sur des choses comme le ClientRegistrationRepositoryqui 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?