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}
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}
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
spring.cloud.openfeign.oauth2.enabled=true
spring.cloud.openfeign.oauth2.clientRegistrationId=XXX
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.

原文链接:Authentification Oauth2 avec OpenFeign

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
The questions you ask determine the quality of your life.
你生活的品质取决于你所提出的问题
评论 抢沙发

请登录后发表评论

    暂无评论内容