Class: Mixlib::Authentication::HTTPAuthenticationRequest

### Home Classes Methods

### In Files

- lib/mixlib/authentication/http_authentication_request.rb

### Parent

Object

### Methods

- ::new
- #content_hash
- #headers
- #host
- #http_method
- #path
- #request_signature
- #signing_description
- #timestamp
- #user_id
- #validate_headers!

### Files

- LICENSE
- NOTICE
- README.rdoc

### Class/Module Index

Quicksearch

- Mixlib
- Mixlib::Authentication
- Mixlib::Authentication::AuthenticationError
- Mixlib::Authentication::Digester
- Mixlib::Authentication::HTTPAuthenticationRequest
- Mixlib::Authentication::Log
- Mixlib::Authentication::MissingAuthenticationHeader
- Mixlib::Authentication::SignatureVerification
- Mixlib::Authentication::SignedHeaderAuth
- Mixlib::Authentication::SigningObject

No matching classes.

# Mixlib::Authentication::HTTPAuthenticationRequest

### Constants

MANDATORY_HEADERS

### Attributes

request[R]

### Public Class Methods

new(request) click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 29
    def initialize(request)
      @request = request
      @request_signature = nil
      validate_headers!
    end

### Public Instance Methods

content_hash() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 63
    def content_hash
      headers[:x_ops_content_hash].chomp
    end

headers() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 35
    def headers
      @headers ||= @request.env.inject({ }) { |memo, kv| memo[$2.gsub(/\-/,"_").downcase.to_sym] = kv[1] if kv[0] =~ /^(HTTP_)(.*)/; memo }
    end

host() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 59
    def host
      headers[:host].chomp
    end

http_method() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 39
    def http_method
      @request.method.to_s
    end

path() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 43
    def path
      @request.path.to_s
    end

request_signature() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 67
    def request_signature
      unless @request_signature
        @request_signature = headers.find_all { |h| h[0].to_s =~ /^x_ops_authorization_/ }.sort { |x,y| x.to_s <=> y.to_s}.map { |i| i[1] }.join("\n")
        Mixlib::Authentication::Log.debug "Reconstituted (user-supplied) request signature: #{@request_signature}"
      end
      @request_signature
    end

signing_description() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 47
    def signing_description
      headers[:x_ops_sign].chomp
    end

timestamp() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 55
    def timestamp
      headers[:x_ops_timestamp].chomp
    end

user_id() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 51
    def user_id
      headers[:x_ops_userid].chomp
    end

validate_headers!() click to toggle source

    # File lib/mixlib/authentication/http_authentication_request.rb, line 76
    def validate_headers!
      missing_headers = MANDATORY_HEADERS - headers.keys
      unless missing_headers.empty?
        missing_headers.map! { |h| h.to_s.upcase }
        raise MissingAuthenticationHeader, "missing required authentication header(s) '#{missing_headers.join("', '")}'"
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.