public
Description: An HTTP proxy for signing OAuth requests
Homepage:
Clone URL: git://github.com/mojodna/oauth-proxy.git
oauth-proxy / README.markdown
100644 62 lines (42 sloc) 1.903 kb

OAuth Proxy

I am an OAuth proxy server. You can pass unsigned requests to me and I will sign them using OAuth before sending them to their eventual destination.

At the moment, tokens and consumer keys are configurable only at start-time, so individual proxies are limited to a single pair at a time.

Running

Run the proxy with twistd:

twistd -n oauth_proxy \
  --consumer-key <consumer key> \
  --consumer-secret <consumer secret> \
  [--token <token>] \
  [--token-secret <token secret>] \
  [-p <proxy port>] \
  [--ssl]

"." may need to be in your PYTHONPATH in order for this to work. You'll also need a relatively modern version of Twisted for this to work; OS X 10.5 comes with 2.5.0, which is too old. 8.2.0 (installed via easy_install twisted) appears to work just fine.

Running as a daemon

You may run the proxy with twistd directly (omitting the -n argument) or you may generate a pre-configured tap, which can then be packaged and distributed. To generate a tap:

mktap oauth_proxy \
  --consumer-key <consumer key> \
  --consumer-secret <consumer secret> \
  [--token <token>] \
  [--token-secret <token secret>] \
  [-p <proxy port>] \
  [--ssl]

To run the tap (using the settings that were provided when creating it):

twistd -f oauth_proxy.tap

Using

This proxy can be used with command-line tools and web browsers alike.

To use it with curl:

curl -x localhost:8001 http://host.name/path

To use it with ab (ApacheBench):

ab -X localhost:8001 http://host.name/path

To use it with Firefox, open the Network settings panel, under Advanced, and set a "Manual Proxy Configuration" after clicking the "Settings..." button. Ensure that "No Proxy for" does not include the host that you are attempting to explore.