Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A request/response rewriting HTTP proxy. A Rack app.

Readme
A request/response rewriting HTTP proxy. A Rack app.

Subclass Rack::Proxy and provide your rewrite_env and rewrite_response methods.

Example:

class Foo < Rack::Proxy

  def rewrite_env(env)
    env["HTTP_HOST"] = "example.com"

    env
  end

  def rewrite_response(triplet)
    status, headers, body = triplet

    headers["X-Foo"] = "Bar"

    triplet
  end

end

Example: disable SSL session verification when proxying a server with e.g. self-signed SSL certs

class TrustingProxy < Rack::Proxy

  def rewrite_env(env)
    env["rack.ssl_verify_none"] = true

    env
  end

end

The same can be achieved for *all* requests going through the `Rack::Proxy` instance by using

    Rack::Proxy.new(ssl_verify_none: true)

See tests for more examples.

WARNING: Doesn't work with fakeweb/webmock. Both libraries monkey-patch net/http code.
Something went wrong with that request. Please try again.