Sha256: c4216c2a19b4081c748c18bb04f7c58ddd571af5d5ac34f97063323749333cfe
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
module ApiAuth module RequestDrivers # :nodoc: class ActionControllerRequest # :nodoc: include ApiAuth::Helpers def initialize(request) @request = request fetch_headers true end def set_auth_header(header) @request.env['Authorization'] = header fetch_headers @request end def calculated_hash body = @request.raw_post sha256_base64digest(body) end def populate_content_hash return unless @request.put? || @request.post? @request.env['X-AUTHORIZATION-CONTENT-SHA256'] = calculated_hash fetch_headers end def content_hash_mismatch? if @request.put? || @request.post? calculated_hash != content_hash else false end end def fetch_headers @headers = capitalize_keys @request.env end def http_method @request.request_method.to_s.upcase end def content_type find_header(%w[CONTENT-TYPE CONTENT_TYPE HTTP_CONTENT_TYPE]) end def content_hash find_header(%w[X-AUTHORIZATION-CONTENT-SHA256 X_AUTHORIZATION_CONTENT_SHA256 HTTP_X_AUTHORIZATION_CONTENT_SHA256]) end def original_uri find_header(%w[X-ORIGINAL-URI X_ORIGINAL_URI HTTP_X_ORIGINAL_URI]) end def request_uri @request.request_uri end def set_date @request.env['HTTP_DATE'] = Time.now.utc.httpdate fetch_headers end def timestamp find_header(%w[DATE HTTP_DATE]) end def authorization_header find_header %w[Authorization AUTHORIZATION HTTP_AUTHORIZATION] end private def find_header(keys) keys.map { |key| @headers[key] }.compact.first end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
api-auth-2.5.1 | lib/api_auth/request_drivers/action_controller.rb |