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.

Top comments (0)

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