小编gio*_*b12的帖子

Nginx - 解码 URL 查询参数并将其作为请求头转发

我需要以user:pass查询参数 (es. http://example.com?BASIC_AUTH=dXNlcjpwYXNz)的形式向 nginx发送一些基本的身份验证凭据 (es. ),并能够以更常见的Authorization: Basic dXNlcjpwYXNz标头形式将它们转发到代理后面的目标服务器。

我已经能够使用正则表达式检索编码的 auth 字符串的值。问题是该值通常可能包含一些需要在 URL 中进行百分比编码的字符。埃斯。user:pass!->?BASIC_AUTH=dXNlcjpwYXNzIQ==变成?BASIC_AUTH=dXNlcjpwYXNzIQ%3D%3D

因此,当我将请求转发到目标服务器时,我最终Authorization: Basic dXNlcjpwYXNzIQ%3D%3D会指定目标服务器将拒绝哪个,并给出 401 Unauthorized。

如何在设置 Authorization 标头之前强制 nginx 解码 auth 字符串?在此先感谢您的帮助。

注意:由于某些特定于应用程序的限制,我无法首先在 Authorization 标头中发送 auth 字符串。

nginx urlencode basic-authentication url-encoding

1
推荐指数
1
解决办法
6128
查看次数