ssl - 带有 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":"请求标头不包含令牌。"}]
解决方案
如果你没有使用 NGINX 的auth_request模块,那么简单地传递 Authorization 标头应该相当容易,如下所示:
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
如果这不起作用,我真的需要查看更多您的 NGINX 配置,我强烈建议使用 NGINX auth_request模块来处理 NGINX 服务器本身上的所有 oAuth。
推荐阅读
- reactjs - 如何使用带有端口的 reactjs 在 laravel 中处理 CORS 问题
- r - R: ERROR - rep.int(c(1, numeric(n)), n - 1L) 中的错误:'times' 值无效
- javascript - 使用 javascript (docx-js) 修改 .docx TOC 的“样式”
- sql - SQL Server 2008 等效于“ROWS BETWEEN UNBOUNDED PRECEDING”
- typescript - 无法部署“pubsub”云功能
- flutter - 颤动:奇怪的颜色和字体大小
- php - 在实时服务器中找不到类,而在 localhost 中没有问题
- apache-spark - spark(2.3或新版本)如何确定读取gs bucket或hdfs中hive表文件的任务数?
- python - Azure TableService() 在 prod 中返回 python ValueError,但在 dev 中不返回
- ruby - 无法在 Windows 上安装 bcrypt 3.1.16 gem:ld.exe:找不到 -lgmp