创建向请求添加基本身份验证的 HTTP 代理的最简单方法是什么?

jos*_*doe 6 proxy http-proxy http-authentication

我正在尝试使用需要基本 HTTP 身份验证的服务器提供的服务,但是我使用的应用程序不支持身份验证。我想要做的是创建一个代理,使我的无身份验证应用程序能够通过代理(将添加身份验证信息)连接到需要身份验证的服务器。我确信这是可以做到的,但是我对那里的代理数量感到不知所措,无法找到如何做到这一点的答案。

基本上,我想要做的就是让代理服务于这个 URL:

http://username:password@remoteserver/path

作为这个网址:

http://proxyserver/path

我可以在 Linux 上运行它,但如果我也可以在 Windows 上运行它,那就更好了。开源或至少免费是必须的。一个很大的好处是它的设置相当简单。

小智 4

基本身份验证通常是“用户名:密码”的 Base64 编码字符串和 HTTP 标头“授权”。

通过将以下内容添加到 Apache2 vHost 应该没问题:

<Location /path>
    RequestHeader set Authorization "Basic <base64string>"
</Location>

ProxyPass /path http://backend/path
ProxyPassReverse /path http://backend/path
Run Code Online (Sandbox Code Playgroud)

您可以在http://www.motobit.com/util/base64-decoder-encoder.asp(例如)对“用户名:密码”部分进行base64编码。上面的示例需要 mod_headers 和 mod_proxy(应该适用于 Linux 和 Windows)以及 Apache2。