Class: ApiAuth::RequestDrivers::ActionControllerRequest
- Inherits:
-
Object
- Object
- ApiAuth::RequestDrivers::ActionControllerRequest
show all
- Includes:
- Helpers
- Defined in:
- lib/api_auth/request_drivers/action_controller.rb
Overview
Instance Method Summary
collapse
Methods included from Helpers
#b64_encode, #capitalize_keys, #md5_base64digest, #sha256_base64digest
Constructor Details
Returns a new instance of ActionControllerRequest.
6
7
8
9
10
11
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 6
def initialize(request, authorize_md5: false)
@request = request
@authorize_md5 = authorize_md5
true
end
|
Instance Method Details
76
77
78
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 76
def
%w[Authorization AUTHORIZATION HTTP_AUTHORIZATION]
end
|
#calculated_hash ⇒ Object
19
20
21
22
23
24
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 19
def calculated_hash
body = @request.raw_post
hashes = [sha256_base64digest(body)]
hashes << md5_base64digest(body) if @authorize_md5
hashes
end
|
#content_hash ⇒ Object
53
54
55
56
57
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 53
def content_hash
= %w[X-AUTHORIZATION-CONTENT-SHA256 X_AUTHORIZATION_CONTENT_SHA256 HTTP_X_AUTHORIZATION_CONTENT_SHA256]
+= %w[CONTENT-MD5 CONTENT_MD5 HTTP_CONTENT_MD5] if @authorize_md5
()
end
|
#content_hash_mismatch? ⇒ Boolean
33
34
35
36
37
38
39
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 33
def content_hash_mismatch?
if @request.put? || @request.post?
!calculated_hash.include?(content_hash)
else
false
end
end
|
#content_type ⇒ Object
49
50
51
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 49
def content_type
(%w[CONTENT-TYPE CONTENT_TYPE HTTP_CONTENT_TYPE])
end
|
41
42
43
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 41
def
= capitalize_keys @request.env
end
|
#http_method ⇒ Object
45
46
47
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 45
def http_method
@request.request_method.to_s.upcase
end
|
#original_uri ⇒ Object
59
60
61
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 59
def original_uri
(%w[X-ORIGINAL-URI X_ORIGINAL_URI HTTP_X_ORIGINAL_URI])
end
|
#populate_content_hash ⇒ Object
26
27
28
29
30
31
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 26
def populate_content_hash
return unless @request.put? || @request.post?
@request.env['X-AUTHORIZATION-CONTENT-SHA256'] = calculated_hash
end
|
#request_uri ⇒ Object
63
64
65
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 63
def request_uri
@request.request_uri
end
|
13
14
15
16
17
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 13
def ()
@request.env['Authorization'] =
@request
end
|
#set_date ⇒ Object
67
68
69
70
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 67
def set_date
@request.env['HTTP_DATE'] = Time.now.utc.httpdate
end
|
#timestamp ⇒ Object
72
73
74
|
# File 'lib/api_auth/request_drivers/action_controller.rb', line 72
def timestamp
(%w[DATE HTTP_DATE])
end
|