我正在开发一种架构,其中我的 Angular 前端连接到 Spring Boot 后端,并且前端可以通过 NGINX 访问。
在访问我的应用程序之前,必须对用户进行身份验证。
我使用 Keycloak 作为身份管理器,使用 keycloak-gatekeeper 作为代理 oauth,验证用户是否经过身份验证。
成功验证后,网守重定向(并发送带有身份信息的标头,例如:用户名、电子邮件、角色......)到我的前面,这是一个调用 spring boot API 以根据登录的用户检索信息的单个页面和它的作用。
问题是:API 没有收到 Gatekeeper 发送的任何这些标头。
我做了几个测试以知道我在哪里丢失了标头,我发现当我将 Gatekeeper 直接与 API 连接时,API 接收所有标头但是当我在两者之间添加角度应用程序时,后端仅接收标准标头,例如:主机,x-real-ip,x-forwarded-for,访问控制允许来源...)
似乎前面生成了一个新请求 - 带有默认标头 - 到后面并丢失了其他标头。
我如何保留这些标头以便我的 API 接收它们?
这是我的架构的图片:
谢谢大家的帮助