class Rack::UrlAuth::Proxy

Attributes

request[R]
signer[R]

Public Class Methods

new(env, signer) click to toggle source
# File lib/rack/url_auth/proxy.rb, line 6
def initialize(env, signer)
  @request = Rack::Request.new(env)
  @signer  = signer
end

Public Instance Methods

authorized?() click to toggle source
# File lib/rack/url_auth/proxy.rb, line 11
def authorized?
  method = request.request_method.downcase
  signature_header = request.env["HTTP_X_SIGNATURE"]

  if !signature_header && request.get? || request.head?
    signer.verify_url(request.url, method)
  else
    body = request.body.read; request.body.rewind
    signer.verify(method + request.url + body, signature_header)
  end
end