DEV Community

Raphaël Anic-Antic
Raphaël Anic-Antic

Posted on

Authentification Oauth2 avec OpenFeign

Contexte

OpenFeign est une libraire du projet Spring Cloud permettant de développer des clients HTTP de manière déclarative.

Note : Spring Cloud OpenFeign n'est pas à confondre avec Feign. En effet, le premier est une surcouche du second offrant une integration au reste de l'écosystème Spring

Dans cet article, nous allons voir comment configurer OpenFeign pour gérer une authentification Oauth2 de manière transparente en se basant sur l'autoconfiguration de Spring Security

Spring Security

Spring Security permet de gérer l'authentification Oauth2 à un service via son autoconfiguration.
Pour se faire, un simple configuration de propriétés dans le fichier application.properties est nécessaire :

spring.security.oauth2.client.registration.XXX.client-id=${client_id}
spring.security.oauth2.client.registration.XXX.client-secret=${client_secret}
spring.security.oauth2.client.registration.XXX.authorization-grant-type=client_credentials
spring.security.oauth2.client.registration.XXX.scope=${scope_list}
spring.security.oauth2.client.provider.XXX.token-uri=${token_uri}
Enter fullscreen mode Exit fullscreen mode

XXX représente le nom du clientRegistrationId utilisé par Spring Security et OpenFeign.

Vous pouvez lui donner le nom de votre choix. D'autre part, vous pouvez configurer différentes authentification Oauth2 en utilisant différents clientRegistrationId

La configuration ci dessus active l'authentification Oauth2 pour Spring Security et RestTemplate (client HTTP par défaut de Spring).

Cependant, nous souhaitons utiliser OpenFeign et pas RestTemplate.

OpenFeign

OpenFeign étant une librairie du projet Spring Cloud, elle dispose de configuration lui permettant de s'intégrer au reste du framework Spring (donc Spring Security).

Pour activer cette intégration, les deux lignes suivantes doivent être ajoutées à votre fichier application.properties

spring.cloud.openfeign.oauth2.enabled=true
spring.cloud.openfeign.oauth2.clientRegistrationId=XXX
Enter fullscreen mode Exit fullscreen mode

Nous retrouvons ici le fameux clientRegistrationId. Celui ci doit être le même que celui configuré pour Spring Security.

Grace à cette configuration, OpenFeign peut gérer automatiquement l'authentification Oauth2 ainsi que le rafraichissement de token.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Some comments have been hidden by the post's author - find out more

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️