【发布时间】:2019-10-22 05:08:35
【问题描述】:
我正在开发一个使用 spring boot、spring cloud 和 Zuul 作为网关的应用程序。
使用 Spring Security,我创建了一个授权服务,该服务将在用户登录时生成 JWT 令牌。
Zuul 网关可以解码此令牌,并让请求在我的应用程序内部发送到路由服务。
现在的问题是,如何在其中一个微服务中获取登录用户(或令牌本身)?有没有办法告诉 Zuul 网关将令牌附加到他传递给路由路径的每个请求?
所有微服务都没有 Spring Security 作为依赖项,因为我们的想法是只在网关级别检查令牌,而不是到处检查令牌,但我找不到合适的方法来这样做......
假设我有一个在网关中路由的用户服务。登录后,用户想要查看他的个人资料。
他将使用令牌向{{gateway_url}}/getUser 发出请求。
网关配置是
zuul:
ignored-services: '*'
sensitive-headers: Cookie,Set-Cookie
routes:
user-service:
path: /user/**
service-id: USER-SERVICE
网关会将此请求路由到 USER-SERVICE 应用程序,到 getProfile 控制器方法我如何知道哪个是登录用户?谁提出的要求?
【问题讨论】:
-
下游服务应该得到适当的 HTTP 标头。
-
下游消息中没有标头...看起来网关没有随请求发送任何内容
-
你期待什么标题?
-
最好的应该是 jwt
标签: spring-boot spring-cloud netflix-zuul