首页 > 解决方案 > 带有 NGINX 反向代理的上游服务器的不记名令牌。标题是否被剥离?

问题描述

我有一个 Tomcat 服务器,它位于应用 SSL 的 NGINX 反向代理后面。Tomcat 服务器上有一个用于 API 调用的不记名令牌,但是当我将此令牌发送到 Postman 中的端点时出现 401 错误。代理在其他方面完美无缺。

我花了太长时间解决这个问题,但我只查看了我的代理设置。我昨晚发现代理应该将身份验证标头转发到上游 Tomcat 服务器,所以现在我不知道如何解决这个问题。有没有人遇到过这个问题或者可以指出我正确的方向?这超出了我的正常范围,所以我有点脱离了我的元素。

编辑 - 即使我使用“proxy_set_header Authorization "Bearer $ID_TOKEN";”强制带有承载令牌的标头 它仍然返回 401 错误。是否可能添加了不应该像第二个 Authorization 标头的东西,或者附加了 Authorization 标头?

EDIT2 - Tomcat 错误日志显示:

[{"time":"2021-05-14 19:01:10.069","description":"请求标头不包含令牌。"}]

标签: ssltomcatnginx-reverse-proxybearer-token

解决方案


如果你没有使用 NGINX 的auth_request模块,那么简单地传递 Authorization 标头应该相当容易,如下所示:

proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization; 

如果这不起作用,我真的需要查看更多您的 NGINX 配置,我强烈建议使用 NGINX auth_request模块来处理 NGINX 服务器本身上的所有 oAuth。


推荐阅读