启用使用 spring cloud oauth2 访问 2 zuul 代理后面的资源

Posted

技术标签:

【中文标题】启用使用 spring cloud oauth2 访问 2 zuul 代理后面的资源【英文标题】:enable to access a resource behind 2 zuul proxy with spring cloud oauth2 【发布时间】:2018-05-30 12:05:56 【问题描述】:

我在微服务架构中工作,其中我的 ui 服务由 zuul-gui 支持,后端服务由 zuul-service 代理支持(两者都带有 Spring cloud oauth2 @EnableOAuth2Sso 注释)。

我的问题是,在使用 oauth 授权服务器对 gui 服务进行身份验证后,我可以访问后端服务。 zuul-gui(第一个 gui 代理)似乎没有将令牌中继到 zuul-service !!??

在两个 zuul 代理中使用 @EnableOAuth2Sso 时我错了吗?为什么 zuul-gui 和 zuul-service 之间没有中继 token?

提前感谢您的帮助。

【问题讨论】:

github.com/ikane/demo-two-zuul-proxys-oauth2 【参考方案1】:

我终于找到了解决问题的方法。想法是不保护 2 秒 zuul 代理 (zuul-service) 并将 zuul.sensitive-hearder 设置为空以告诉 zuul-service 不要剥离后端服务的请求标头和 cookie。

希望它会帮助别人!我在这个问题上挣扎并浪费了很多次!

【讨论】:

以上是关于启用使用 spring cloud oauth2 访问 2 zuul 代理后面的资源的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring Cloud Security 实现 OAuth2“令牌交换”

保障微服务 Spring Cloud 安全 Oauth2

什么是使用 Spring Cloud 微服务的 OAuth2 中的资源服务器

Spring Cloud Gateway OAuth2 with Spring Security OAuth2 Authorization Server = loop

使用 spring-session 和 spring-cloud-security 时,OAuth2ClientContext (spring-security-oauth2) 不会保留在 Redis

Spring Cloud之Oauth2环境搭建