即使凭据正确,Nginx 基本身份验证也会因未经授权而失败

问题描述 投票:0回答:1

我有一个 nginx 代理重定向在 docker 容器内工作,将所有请求重定向到正确的服务。我对 basic_auth 有问题,因为它无法按预期工作。下面是主服务器代理位置指向 maildev 容器的配置。

            location /backend_api_v2/swagger.json {
                   auth_basic               "Restricted";
                   auth_basic_user_file     /etc/nginx/conf.d/nginx.htpasswd;

                   proxy_pass               http://${BACKEND_HOST_PORT}/backendAPI/swagger.json;
                   proxy_redirect           default;
            }

如果授权被删除,则该请求确实会通过并正确显示 swagger 定义。其他有趣的是,返回 401 的不是 nginx,而是 undertow 领域的安全性,这更奇怪,因为该端点不需要身份验证。

这是返回的标头。enter image description here

任何帮助将不胜感激07

nginx wildfly undertow
1个回答
0
投票

似乎将 populate Authorization 标头传递给 api 容器使其尝试使用 Undertow 的凭据,但该凭据无效(即使它是开放端点)。

我已经通过将授权标头设置为空来解决它的问题。下面是修改后的配置以使其正常工作。

            location /backend_api_v2/swagger.json {
               auth_basic               "Restricted";
               auth_basic_user_file     /etc/nginx/conf.d/nginx.htpasswd;
               proxy_set_header         Authorization "";
               proxy_pass               http://${BACKEND_HOST_PORT}/backendAPI/swagger.json;
        }
© www.soinside.com 2019 - 2024. All rights reserved.