stormpath-sdk 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +21 -0
  3. data/CHANGES.md +11 -0
  4. data/README.md +23 -25
  5. data/lib/stormpath-sdk.rb +11 -2
  6. data/lib/stormpath-sdk/api_key.rb +0 -1
  7. data/lib/stormpath-sdk/auth/basic_authenticator.rb +7 -7
  8. data/lib/stormpath-sdk/auth/basic_login_attempt.rb +7 -11
  9. data/lib/stormpath-sdk/auth/create_factor.rb +1 -1
  10. data/lib/stormpath-sdk/auth/register_service_provider.rb +41 -0
  11. data/lib/stormpath-sdk/auth/username_password_request.rb +3 -5
  12. data/lib/stormpath-sdk/cache/cache.rb +3 -3
  13. data/lib/stormpath-sdk/cache/cache_entry.rb +2 -2
  14. data/lib/stormpath-sdk/cache/cache_manager.rb +3 -4
  15. data/lib/stormpath-sdk/cache/cache_stats.rb +1 -3
  16. data/lib/stormpath-sdk/cache/disabled_cache_store.rb +5 -8
  17. data/lib/stormpath-sdk/cache/memory_store.rb +1 -1
  18. data/lib/stormpath-sdk/cache/redis_store.rb +4 -4
  19. data/lib/stormpath-sdk/client.rb +35 -33
  20. data/lib/stormpath-sdk/data_store.rb +278 -257
  21. data/lib/stormpath-sdk/error.rb +18 -7
  22. data/lib/stormpath-sdk/http/authc/sauthc1_signer.rb +76 -82
  23. data/lib/stormpath-sdk/http/http_client_request_executor.rb +10 -8
  24. data/lib/stormpath-sdk/http/response.rb +5 -7
  25. data/lib/stormpath-sdk/id_site/id_site_result.rb +5 -6
  26. data/lib/stormpath-sdk/oauth/access_token_authentication_result.rb +5 -9
  27. data/lib/stormpath-sdk/oauth/authenticator.rb +2 -2
  28. data/lib/stormpath-sdk/oauth/error.rb +4 -4
  29. data/lib/stormpath-sdk/oauth/id_site_grant_request.rb +1 -1
  30. data/lib/stormpath-sdk/oauth/password_grant_request.rb +1 -1
  31. data/lib/stormpath-sdk/oauth/refresh_grant_request.rb +2 -2
  32. data/lib/stormpath-sdk/oauth/stormpath_grant_request.rb +2 -2
  33. data/lib/stormpath-sdk/provider/account_access.rb +0 -2
  34. data/lib/stormpath-sdk/provider/account_result.rb +1 -2
  35. data/lib/stormpath-sdk/provider/facebook/facebook_provider.rb +6 -2
  36. data/lib/stormpath-sdk/provider/facebook/facebook_provider_data.rb +7 -3
  37. data/lib/stormpath-sdk/provider/github/github_provider.rb +6 -2
  38. data/lib/stormpath-sdk/provider/github/github_provider_data.rb +6 -2
  39. data/lib/stormpath-sdk/provider/google/google_provider.rb +7 -3
  40. data/lib/stormpath-sdk/provider/google/google_provider_data.rb +6 -2
  41. data/lib/stormpath-sdk/provider/linkedin/linkedin_provider.rb +6 -2
  42. data/lib/stormpath-sdk/provider/linkedin/linkedin_provider_data.rb +6 -2
  43. data/lib/stormpath-sdk/provider/provider.rb +8 -4
  44. data/lib/stormpath-sdk/provider/provider_data.rb +6 -2
  45. data/lib/stormpath-sdk/provider/saml/saml_provider.rb +10 -4
  46. data/lib/stormpath-sdk/provider/saml/saml_provider_data.rb +6 -3
  47. data/lib/stormpath-sdk/provider/stormpath/stormpath_provider.rb +6 -2
  48. data/lib/stormpath-sdk/provider/stormpath/stormpath_provider_data.rb +6 -2
  49. data/lib/stormpath-sdk/provider/twitter/twitter_provider.rb +6 -2
  50. data/lib/stormpath-sdk/provider/twitter/twitter_provider_data.rb +6 -2
  51. data/lib/stormpath-sdk/resource/account.rb +46 -40
  52. data/lib/stormpath-sdk/resource/account_link.rb +9 -5
  53. data/lib/stormpath-sdk/resource/account_linking_policy.rb +8 -4
  54. data/lib/stormpath-sdk/resource/account_membership.rb +1 -1
  55. data/lib/stormpath-sdk/resource/account_overrides.rb +20 -16
  56. data/lib/stormpath-sdk/resource/account_store.rb +15 -11
  57. data/lib/stormpath-sdk/resource/account_store_mapping.rb +14 -13
  58. data/lib/stormpath-sdk/resource/application.rb +147 -136
  59. data/lib/stormpath-sdk/resource/application_web_config.rb +11 -7
  60. data/lib/stormpath-sdk/resource/associations.rb +36 -43
  61. data/lib/stormpath-sdk/resource/attribute_statement_mapping_rules.rb +8 -0
  62. data/lib/stormpath-sdk/resource/base.rb +201 -200
  63. data/lib/stormpath-sdk/resource/challenge.rb +12 -8
  64. data/lib/stormpath-sdk/resource/collection.rb +77 -76
  65. data/lib/stormpath-sdk/resource/custom_data.rb +60 -61
  66. data/lib/stormpath-sdk/resource/custom_data_hash_methods.rb +28 -25
  67. data/lib/stormpath-sdk/resource/custom_data_storage.rb +18 -16
  68. data/lib/stormpath-sdk/resource/directory.rb +37 -60
  69. data/lib/stormpath-sdk/resource/email_verification_token.rb +7 -3
  70. data/lib/stormpath-sdk/resource/error.rb +8 -4
  71. data/lib/stormpath-sdk/resource/expansion.rb +22 -20
  72. data/lib/stormpath-sdk/resource/factor.rb +12 -8
  73. data/lib/stormpath-sdk/resource/field.rb +8 -4
  74. data/lib/stormpath-sdk/resource/group.rb +21 -16
  75. data/lib/stormpath-sdk/resource/group_membership.rb +7 -5
  76. data/lib/stormpath-sdk/resource/instance.rb +10 -6
  77. data/lib/stormpath-sdk/resource/linked_account.rb +7 -3
  78. data/lib/stormpath-sdk/resource/oauth_policy.rb +7 -3
  79. data/lib/stormpath-sdk/resource/organization.rb +14 -10
  80. data/lib/stormpath-sdk/resource/organization_account_store_mapping.rb +8 -4
  81. data/lib/stormpath-sdk/resource/password_reset_token.rb +9 -5
  82. data/lib/stormpath-sdk/resource/phone.rb +8 -4
  83. data/lib/stormpath-sdk/resource/registered_saml_service_provider.rb +8 -0
  84. data/lib/stormpath-sdk/resource/saml_identity_provider.rb +14 -0
  85. data/lib/stormpath-sdk/resource/saml_identity_provider_metadata.rb +9 -0
  86. data/lib/stormpath-sdk/resource/saml_policy.rb +10 -0
  87. data/lib/stormpath-sdk/resource/saml_service_provider.rb +7 -0
  88. data/lib/stormpath-sdk/{provider/saml/saml_mapping_rules.rb → resource/saml_service_provider_metadata.rb} +6 -5
  89. data/lib/stormpath-sdk/resource/saml_service_provider_registration.rb +11 -0
  90. data/lib/stormpath-sdk/resource/schema.rb +8 -4
  91. data/lib/stormpath-sdk/resource/tenant.rb +11 -8
  92. data/lib/stormpath-sdk/resource/user_info_mapping_rules.rb +7 -3
  93. data/lib/stormpath-sdk/resource/utils.rb +7 -10
  94. data/lib/stormpath-sdk/resource/verification_email.rb +7 -3
  95. data/lib/stormpath-sdk/resource/x_509_certificate.rb +7 -0
  96. data/lib/stormpath-sdk/util/assert.rb +1 -3
  97. data/lib/stormpath-sdk/version.rb +2 -2
  98. data/spec/auth/basic_authenticator_spec.rb +28 -24
  99. data/spec/auth/register_service_provider_spec.rb +68 -0
  100. data/spec/auth/sauthc1_signer_spec.rb +8 -4
  101. data/spec/cache/cache_entry_spec.rb +28 -29
  102. data/spec/cache/cache_spec.rb +9 -9
  103. data/spec/cache/cache_stats_spec.rb +1 -1
  104. data/spec/client_spec.rb +63 -63
  105. data/spec/data_store_spec.rb +23 -14
  106. data/spec/oauth/access_token_authentication_result_spec.rb +8 -2
  107. data/spec/provider/account_resolver_spec.rb +6 -4
  108. data/spec/provider/provider_spec.rb +6 -6
  109. data/spec/resource/account_creation_policy_spec.rb +1 -1
  110. data/spec/resource/account_link_spec.rb +7 -15
  111. data/spec/resource/account_spec.rb +17 -17
  112. data/spec/resource/account_store_mapping_spec.rb +16 -22
  113. data/spec/resource/account_store_spec.rb +3 -3
  114. data/spec/resource/application_spec.rb +324 -330
  115. data/spec/resource/base_spec.rb +7 -31
  116. data/spec/resource/collection_spec.rb +63 -114
  117. data/spec/resource/custom_data_spec.rb +1 -1
  118. data/spec/resource/directory_spec.rb +91 -87
  119. data/spec/resource/expansion_spec.rb +10 -10
  120. data/spec/resource/factor_spec.rb +1 -1
  121. data/spec/resource/group_spec.rb +1 -1
  122. data/spec/resource/linked_account_spec.rb +7 -7
  123. data/spec/resource/organization_spec.rb +12 -11
  124. data/spec/resource/phone_spec.rb +1 -1
  125. data/spec/resource/registered_saml_service_provider_spec.rb +35 -0
  126. data/spec/resource/saml_identity_provider_metadata_spec.rb +27 -0
  127. data/spec/resource/saml_identity_provider_spec.rb +94 -0
  128. data/spec/resource/saml_policy_spec.rb +27 -0
  129. data/spec/resource/saml_service_provider_registration_spec.rb +58 -0
  130. data/spec/resource/saml_service_provider_spec.rb +19 -0
  131. data/spec/resource/status_spec.rb +4 -3
  132. data/spec/resource/tenant_spec.rb +4 -6
  133. data/spec/spec_helper.rb +1 -1
  134. data/spec/support/custom_data_save_period.rb +4 -0
  135. data/spec/support/custom_data_storage_behavior.rb +7 -8
  136. data/spec/support/mocked_provider_accounts.rb +101 -101
  137. data/spec/support/mocked_saml_responses.rb +130 -0
  138. data/spec/support/resource_factory.rb +4 -4
  139. data/spec/support/resource_helpers.rb +10 -4
  140. data/spec/support/resource_matchers.rb +4 -4
  141. data/spec/support/test_request_executor.rb +2 -2
  142. metadata +21 -8
  143. data/lib/stormpath-sdk/provider/saml/saml_provider_metadata.rb +0 -19
  144. data/spec/fixtures/response/create_saml_directory.json +0 -26
  145. data/spec/fixtures/response/create_saml_directory_mapping_rules.json +0 -12
  146. data/spec/fixtures/response/get_saml_directory_provider.json +0 -16
  147. data/spec/fixtures/response/get_saml_directory_provider_metadata.json +0 -12
@@ -28,13 +28,24 @@ module Stormpath
28
28
 
29
29
  private
30
30
 
31
- class NilError
32
- def message; '' end
33
- def status; -1 end
34
- def code; -1 end
35
- def developer_message; end
36
- def more_info; end
37
- def request_id; end
31
+ class NilError
32
+ def message
33
+ ''
38
34
  end
35
+
36
+ def status
37
+ -1
38
+ end
39
+
40
+ def code
41
+ -1
42
+ end
43
+
44
+ def developer_message; end
45
+
46
+ def more_info; end
47
+
48
+ def request_id; end
49
+ end
39
50
  end
40
51
  end
@@ -21,26 +21,26 @@ module Stormpath
21
21
  include UUIDTools
22
22
  include Stormpath::Http::Utils
23
23
 
24
- DEFAULT_ALGORITHM = "SHA256"
25
- HOST_HEADER = "Host"
26
- AUTHORIZATION_HEADER = "Authorization"
27
- STORMPATH_DATE_HEADER = "X-Stormpath-Date"
28
- ID_TERMINATOR = "sauthc1_request"
29
- ALGORITHM = "HMAC-SHA-256"
30
- AUTHENTICATION_SCHEME = "SAuthc1"
31
- SAUTHC1_ID = "sauthc1Id"
32
- SAUTHC1_SIGNED_HEADERS = "sauthc1SignedHeaders"
33
- SAUTHC1_SIGNATURE = "sauthc1Signature"
34
- DATE_FORMAT = "%Y%m%d"
35
- TIMESTAMP_FORMAT = "%Y%m%dT%H%M%SZ"
36
- #noinspection RubyConstantNamingConvention
37
- NL = "\n"
38
-
39
- def initialize(uuid_generator=UUID.method(:random_create))
24
+ DEFAULT_ALGORITHM = 'SHA256'.freeze
25
+ HOST_HEADER = 'Host'.freeze
26
+ AUTHORIZATION_HEADER = 'Authorization'.freeze
27
+ STORMPATH_DATE_HEADER = 'X-Stormpath-Date'.freeze
28
+ ID_TERMINATOR = 'sauthc1_request'.freeze
29
+ ALGORITHM = 'HMAC-SHA-256'.freeze
30
+ AUTHENTICATION_SCHEME = 'SAuthc1'.freeze
31
+ SAUTHC1_ID = 'sauthc1Id'.freeze
32
+ SAUTHC1_SIGNED_HEADERS = 'sauthc1SignedHeaders'.freeze
33
+ SAUTHC1_SIGNATURE = 'sauthc1Signature'.freeze
34
+ DATE_FORMAT = '%Y%m%d'.freeze
35
+ TIMESTAMP_FORMAT = '%Y%m%dT%H%M%SZ'.freeze
36
+ # noinspection RubyConstantNamingConvention
37
+ NL = "\n".freeze
38
+
39
+ def initialize(uuid_generator = UUID.method(:random_create))
40
40
  @uuid_generator = uuid_generator
41
41
  end
42
42
 
43
- def sign_request request
43
+ def sign_request(request)
44
44
  request.http_headers.delete(Sauthc1Signer::AUTHORIZATION_HEADER)
45
45
  request.http_headers.delete(Sauthc1Signer::STORMPATH_DATE_HEADER)
46
46
 
@@ -56,9 +56,7 @@ module Stormpath
56
56
  # have to have it in the request by the time we sign.
57
57
  host_header = uri.host
58
58
 
59
- unless default_port?(uri)
60
- host_header << ":" << uri.port.to_s
61
- end
59
+ host_header << ':' << uri.port.to_s unless default_port?(uri)
62
60
 
63
61
  request.http_headers.store HOST_HEADER, host_header
64
62
 
@@ -78,7 +76,7 @@ module Stormpath
78
76
  signed_headers_string,
79
77
  request_payload_hash_hex].join(NL)
80
78
 
81
- id = [request.api_key.id, date_stamp, nonce, ID_TERMINATOR].join("/")
79
+ id = [request.api_key.id, date_stamp, nonce, ID_TERMINATOR].join('/')
82
80
 
83
81
  canonical_request_hash_hex = to_hex(hash_text(canonical_request))
84
82
 
@@ -93,16 +91,15 @@ module Stormpath
93
91
  signature = sign to_utf8(string_to_sign), k_signing, DEFAULT_ALGORITHM
94
92
  signature_hex = to_hex signature
95
93
 
96
- authorization_header = AUTHENTICATION_SCHEME + " " +
97
- create_name_value_pair(SAUTHC1_ID, id) + ", " +
98
- create_name_value_pair(SAUTHC1_SIGNED_HEADERS, signed_headers_string) + ", " +
99
- create_name_value_pair(SAUTHC1_SIGNATURE, signature_hex)
94
+ authorization_header = AUTHENTICATION_SCHEME + ' ' +
95
+ create_name_value_pair(SAUTHC1_ID, id) + ', ' +
96
+ create_name_value_pair(SAUTHC1_SIGNED_HEADERS, signed_headers_string) + ', ' +
97
+ create_name_value_pair(SAUTHC1_SIGNATURE, signature_hex)
100
98
 
101
99
  request.http_headers.store AUTHORIZATION_HEADER, authorization_header
102
100
  end
103
101
 
104
-
105
- def to_hex data
102
+ def to_hex(data)
106
103
  result = ''
107
104
 
108
105
  data.each_byte do |val|
@@ -121,72 +118,69 @@ module Stormpath
121
118
 
122
119
  private
123
120
 
124
- def canonicalize_query_string request
125
- request.to_s_query_string true
126
- end
121
+ def canonicalize_query_string(request)
122
+ request.to_s_query_string true
123
+ end
127
124
 
128
- def hash_text text
129
- Digest.digest DEFAULT_ALGORITHM, to_utf8(text)
130
- end
125
+ def hash_text(text)
126
+ Digest.digest DEFAULT_ALGORITHM, to_utf8(text)
127
+ end
131
128
 
132
- def sign data, key, algorithm
133
- digest_data = to_utf8 data
134
- digest = Digest.new(algorithm)
135
- HMAC.digest(digest, key, digest_data)
136
- end
129
+ def sign(data, key, algorithm)
130
+ digest_data = to_utf8 data
131
+ digest = Digest.new(algorithm)
132
+ HMAC.digest(digest, key, digest_data)
133
+ end
137
134
 
138
- def to_utf8 str
139
- #we ask for multi line UTF-8 text
140
- str.scan(/./mu).join
141
- end
135
+ def to_utf8(str)
136
+ # we ask for multi line UTF-8 text
137
+ str.scan(/./mu).join
138
+ end
142
139
 
143
- def get_request_payload request
144
- get_request_payload_without_query_params request
145
- end
140
+ def get_request_payload(request)
141
+ get_request_payload_without_query_params request
142
+ end
146
143
 
147
- def get_request_payload_without_query_params request
148
- request.body || ''
149
- end
144
+ def get_request_payload_without_query_params(request)
145
+ request.body || ''
146
+ end
150
147
 
151
- def create_name_value_pair name, value
152
- "#{name}=#{value}"
153
- end
148
+ def create_name_value_pair(name, value)
149
+ "#{name}=#{value}"
150
+ end
154
151
 
155
- def canonicalize_resource_path resource_path
156
- if resource_path.nil? or resource_path.empty?
157
- '/'
158
- else
159
- encode_url resource_path, true, true
160
- end
152
+ def canonicalize_resource_path(resource_path)
153
+ if resource_path.nil? || resource_path.empty?
154
+ '/'
155
+ else
156
+ encode_url resource_path, true, true
161
157
  end
158
+ end
162
159
 
160
+ def canonicalize_headers(request)
161
+ sorted_headers = request.http_headers.keys.sort!
162
+ result = ''
163
163
 
164
- def canonicalize_headers request
165
- sorted_headers = request.http_headers.keys.sort!
166
- result = ''
167
-
168
- sorted_headers.each do |header|
169
- result << header.downcase << ':' << request.http_headers[header].to_s
170
- result << NL
171
- end
172
- result
164
+ sorted_headers.each do |header|
165
+ result << header.downcase << ':' << request.http_headers[header].to_s
166
+ result << NL
173
167
  end
168
+ result
169
+ end
174
170
 
175
- def get_signed_headers request
176
- sorted_headers = request.http_headers.keys.sort!
177
- result = ''
178
- sorted_headers.each do |header|
179
- if result.empty?
180
- result << header
181
- else
182
- result << ';' << header
183
- end
171
+ def get_signed_headers(request)
172
+ sorted_headers = request.http_headers.keys.sort!
173
+ result = ''
174
+ sorted_headers.each do |header|
175
+ if result.empty?
176
+ result << header
177
+ else
178
+ result << ';' << header
184
179
  end
185
- result.downcase
186
180
  end
187
-
188
-
189
- end#Sauthc1Signer
190
- end#Authc
191
- end#Http
192
- end#Stormpath
181
+ result.downcase
182
+ end
183
+ end # Sauthc1Signer
184
+ end # Authc
185
+ end # Http
186
+ end # Stormpath
@@ -21,11 +21,11 @@ module Stormpath
21
21
 
22
22
  def initialize(options = {})
23
23
  @signer = Sauthc1Signer.new
24
- @http_client = HTTPClient.new options[:proxy]
24
+ @http_client = HTTPClient.new(options[:proxy])
25
25
  end
26
26
 
27
27
  def execute_request(request, redirects_limit = 10)
28
- assert_not_nil request, "Request argument cannot be null."
28
+ assert_not_nil request, 'Request argument cannot be null.'
29
29
 
30
30
  @redirect_response = nil
31
31
 
@@ -37,7 +37,7 @@ module Stormpath
37
37
  request.href
38
38
  end
39
39
 
40
- if request.http_headers["Content-Type"] == "application/x-www-form-urlencoded"
40
+ if request.http_headers['Content-Type'] == 'application/x-www-form-urlencoded'
41
41
  @http_client.set_auth(request.href, request.api_key.id, request.api_key.secret)
42
42
  end
43
43
 
@@ -45,17 +45,19 @@ module Stormpath
45
45
 
46
46
  response = method.call domain, request.body, request.http_headers
47
47
 
48
- if response.redirect? and redirects_limit > 0
48
+ if response.redirect? && redirects_limit > 0
49
49
  request.href = response.http_header['location'][0]
50
50
  redirects_limit -= 1
51
51
  @redirect_response = execute_request request, redirects_limit
52
52
  return @redirect_response
53
53
  end
54
54
 
55
- Response.new response.http_header.status_code,
56
- response.http_header.body_type,
57
- response.content,
58
- response.http_header.body_size
55
+ Response.new(
56
+ response.http_header.status_code,
57
+ response.http_header.body_type,
58
+ response.content,
59
+ response.http_header.body_size
60
+ )
59
61
  end
60
62
  end
61
63
  end
@@ -16,11 +16,10 @@
16
16
  module Stormpath
17
17
  module Http
18
18
  class Response
19
-
20
19
  attr_reader :http_status, :body
21
20
  attr_accessor :headers
22
21
 
23
- def initialize http_status, content_type, body, content_length
22
+ def initialize(http_status, content_type, body, content_length)
24
23
  @http_status = http_status
25
24
  @headers = HTTP::Message::Headers.new
26
25
  @body = body
@@ -29,17 +28,16 @@ module Stormpath
29
28
  end
30
29
 
31
30
  def client_error?
32
- http_status >= 400 and http_status < 500
31
+ (http_status >= 400) && http_status < 500
33
32
  end
34
33
 
35
34
  def server_error?
36
- http_status >= 500 and http_status < 600
35
+ (http_status >= 500) && http_status < 600
37
36
  end
38
37
 
39
38
  def error?
40
- client_error? or server_error?
39
+ client_error? || server_error?
41
40
  end
42
-
43
41
  end
44
42
  end
45
- end
43
+ end
@@ -3,14 +3,14 @@ module Stormpath
3
3
  class IdSiteResult
4
4
  attr_accessor :jwt_response, :account_href, :state, :status, :is_new_account
5
5
 
6
- alias_method :new_account?, :is_new_account
6
+ alias new_account? is_new_account
7
7
 
8
8
  def initialize(jwt_response)
9
9
  @jwt_response = jwt_response
10
- @account_href = jwt_response["sub"]
11
- @status = jwt_response["status"]
12
- @state = jwt_response["state"]
13
- @is_new_account = jwt_response["isNewSub"]
10
+ @account_href = jwt_response['sub']
11
+ @status = jwt_response['status']
12
+ @state = jwt_response['state']
13
+ @is_new_account = jwt_response['isNewSub']
14
14
  end
15
15
 
16
16
  def jwt_invalid?(api_key_id)
@@ -19,4 +19,3 @@ module Stormpath
19
19
  end
20
20
  end
21
21
  end
22
-
@@ -3,12 +3,10 @@ module Stormpath
3
3
  class AccessTokenAuthenticationResult < Stormpath::Resource::Instance
4
4
  prop_reader :access_token, :refresh_token, :token_type, :expires_in, :stormpath_access_token_href
5
5
 
6
- alias_method :href, :stormpath_access_token_href
6
+ alias href stormpath_access_token_href
7
7
 
8
8
  def delete
9
- unless href.respond_to?(:empty) and href.empty?
10
- data_store.delete self
11
- end
9
+ data_store.delete(self) unless href.respond_to?(:empty) && href.empty?
12
10
  end
13
11
 
14
12
  def account
@@ -22,11 +20,9 @@ module Stormpath
22
20
  end
23
21
 
24
22
  def jwt_response
25
- begin
26
- JWT.decode(access_token, data_store.api_key.secret).first
27
- rescue JWT::ExpiredSignature => error
28
- raise Stormpath::Oauth::Error.new(:jwt_expired)
29
- end
23
+ JWT.decode(access_token, data_store.api_key.secret).first
24
+ rescue JWT::ExpiredSignature => error
25
+ raise Stormpath::Oauth::Error, :jwt_expired
30
26
  end
31
27
  end
32
28
  end
@@ -8,14 +8,14 @@ module Stormpath
8
8
  end
9
9
 
10
10
  def authenticate(parent_href, request)
11
- assert_not_nil parent_href, "parent_href must be specified"
11
+ assert_not_nil parent_href, 'parent_href must be specified'
12
12
 
13
13
  clazz = GRANT_CLASSES_BY_TYPE[request.grant_type.to_sym]
14
14
  attempt = @data_store.instantiate(clazz)
15
15
  attempt.set_options(request)
16
16
  href = parent_href + '/oauth/token'
17
17
 
18
- @data_store.create href, attempt, Stormpath::Oauth::AccessTokenAuthenticationResult
18
+ @data_store.create(href, attempt, Stormpath::Oauth::AccessTokenAuthenticationResult)
19
19
  end
20
20
 
21
21
  GRANT_CLASSES_BY_TYPE = {
@@ -26,28 +26,28 @@ module Stormpath
26
26
  },
27
27
  jwt_expired: {
28
28
  status: 400,
29
- code: 10011,
29
+ code: 10_011,
30
30
  message: 'Token is invalid',
31
31
  developer_message: 'Token is no longer valid because it has expired',
32
32
  request_id: 'Oauth error UUID'
33
33
  },
34
34
  jwt_invalid: {
35
35
  status: 400,
36
- code: 10012,
36
+ code: 10_012,
37
37
  message: 'Token is invalid',
38
38
  developer_message: 'Token is invalid because the issued at time (iat) is after the current time',
39
39
  request_id: 'Oauth error UUID'
40
40
  },
41
41
  jwt_invalid_issuer: {
42
42
  status: 400,
43
- code: 10014,
43
+ code: 10_014,
44
44
  message: 'Token is invalid',
45
45
  developer_message: 'Token is invalid because the issuer of the token does not match the Application validating the token.',
46
46
  request_id: 'Oauth error UUID'
47
47
  },
48
48
  jwt_invalid_signature: {
49
49
  status: 400,
50
- code: 10017,
50
+ code: 10_017,
51
51
  message: 'Token is invalid',
52
52
  developer_message: 'Token is invalid because verifying the signature of a JWT failed.',
53
53
  request_id: 'Oauth error UUID'
@@ -5,7 +5,7 @@ module Stormpath
5
5
 
6
6
  def initialize(token)
7
7
  @token = token
8
- @grant_type = "id_site_token"
8
+ @grant_type = 'id_site_token'
9
9
  end
10
10
  end
11
11
  end
@@ -6,7 +6,7 @@ module Stormpath
6
6
  def initialize(username, password, options = {})
7
7
  @username = username
8
8
  @password = password
9
- @grant_type = "password"
9
+ @grant_type = 'password'
10
10
  @organization_name_key = options[:organization_name_key]
11
11
  end
12
12
  end