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}
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
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