Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx反向代理基本身份验证Base64 Url编码_Nginx_Base64_Reverse Proxy - Fatal编程技术网

Nginx反向代理基本身份验证Base64 Url编码

Nginx反向代理基本身份验证Base64 Url编码,nginx,base64,reverse-proxy,Nginx,Base64,Reverse Proxy,我在一个我没有参与的web应用程序前面使用了一个反向代理 要自动连接我的用户,我使用Basic Auth。因此,我在url的base 64中传递一个参数,如下所示 不幸的是,url代理背后的web应用程序对查询字符串参数进行了编码。因此,当我的代理在头中传递身份验证时,身份验证不好 这是我的Nginx配置 server { listen 80; root /usr/share/nginx/www; index index.html index.htm; se

我在一个我没有参与的web应用程序前面使用了一个反向代理

要自动连接我的用户,我使用Basic Auth。因此,我在url的base 64中传递一个参数,如下所示

不幸的是,url代理背后的web应用程序对查询字符串参数进行了编码。因此,当我的代理在头中传递身份验证时,身份验证不好

这是我的Nginx配置

server {
    listen    80;
    root /usr/share/nginx/www;
    index index.html index.htm;
    server_name mydomain.com;

    location /mywebapp/ {

        set $basicAuth "Basic $arg_user";
        proxy_pass http://localhost:3524/;
        proxy_set_header Authorization $basicAuth;
    }
}
如何在不访问代理背后的web应用程序的情况下解决此问题


提前感谢您的回答。

0如果我正确理解您的问题,您正在通过nginx进行基本身份验证,并且您不想在web应用程序上接收查询参数?然后,您只需在nginx conf中删除它:
if($query_string~“^(.*)User=(.*)$”{rewrite^(.*)$$uri?permanent;}
头中没有使用my proxy转换我的查询字符串参数。身份验证由后面的web应用程序完成。因此,必须保留查询字符串参数,但不能使用url编码。或者我必须找到另一种方法通过考试好的,我明白。您可以简单地将其作为标头传递,并在web应用程序中解码b64字符串。我建议将经过编码的字符串传递给其他人。我不知道您使用的是哪种语言,但通常您可以(d)e[n]在一行中对bas64字符串进行编码问题在于它不是我的web应用程序。我手头没有:/n您可以编写一个代理请求的应用程序。除了Nginx之外,没有一个真正好的方法将此(业务逻辑)功能添加到Nginx中。如果您想使用Zuul或API网关,还可以查看一下,并将逻辑添加到其中