I am trying to use a service provided by a server which requires basic HTTP authentication, however the application I am using does not support authentication. What I'd like to do is create a proxy that will enable my auth-less application to connect via the proxy (which will add the authentication information) to the server requiring authentication. I'm sure this can be done, however I'm overwhelmed with the number of proxies out there and couldn't find an answer how to do this.
Basically it seems all I want to do is have a proxy serve this URL:
http://username:password@remoteserver/path
as this URL:
http://proxyserver/path
I can run it on Linux, but a plus if I can run it Windows as well. Open source or at least free is a must. A big plus is if it's fairly straightforward to setup.
Basic Authentication normally is a Base64 Encoded String of "username:password" and a HTTP-Header "Authorization".
By adding the following to a Apache2 vHost you should be fine:
You can base64 encode the "username:password" part at http://www.motobit.com/util/base64-decoder-encoder.asp (for example). The example above needs mod_headers and mod_proxy (should be available for both - Linux and Windows - with Apache2.
You can also modify requests (add / alter headers) in some other packages, such as WinGate on Windows.
If you see a browser popup dialog, that usually means you're getting a 407 response from a proxy or 401 from the end server, it's not necessarily an indication of the use of HTTP Basic auth.
You can log auth challenge fields, or just use wireshark to see what's going on.
You can try BusyBox httpd: you can proxy requests and add a basic auth to the proxied path.