authlete 0.5.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/lib/authlete.rb +24 -1
  3. data/lib/authlete/api.rb +298 -146
  4. data/lib/authlete/authentication-server.rb +1 -1
  5. data/lib/authlete/exception.rb +6 -3
  6. data/lib/authlete/model/client-extension.rb +135 -135
  7. data/lib/authlete/model/client-list.rb +128 -128
  8. data/lib/authlete/model/client.rb +468 -468
  9. data/lib/authlete/model/hashable.rb +1 -1
  10. data/lib/authlete/model/pair.rb +102 -102
  11. data/lib/authlete/model/property.rb +116 -0
  12. data/lib/authlete/model/request/authentication-callback-request.rb +90 -90
  13. data/lib/authlete/model/request/authorization-fail-request.rb +107 -104
  14. data/lib/authlete/model/request/authorization-issue-request.rb +167 -133
  15. data/lib/authlete/model/request/authorization-request.rb +101 -101
  16. data/lib/authlete/model/request/client-authorization-delete-request.rb +123 -0
  17. data/lib/authlete/model/request/client-authorization-get-list-request.rb +123 -0
  18. data/lib/authlete/model/request/client-authorization-update-request.rb +118 -0
  19. data/lib/authlete/model/request/client-secret-update-request.rb +121 -0
  20. data/lib/authlete/model/request/developer-authentication-callback-request.rb +84 -84
  21. data/lib/authlete/model/request/granted-scopes-request.rb +103 -0
  22. data/lib/authlete/model/request/introspection-request.rb +117 -39
  23. data/lib/authlete/model/request/revocation-request.rb +125 -0
  24. data/lib/authlete/model/request/standard-introspection-request.rb +102 -0
  25. data/lib/authlete/model/request/token-create-request.rb +250 -0
  26. data/lib/authlete/model/request/token-fail-request.rb +104 -101
  27. data/lib/authlete/model/request/token-issue-request.rb +116 -101
  28. data/lib/authlete/model/request/token-request.rb +127 -121
  29. data/lib/authlete/model/request/token-update-request.rb +165 -0
  30. data/lib/authlete/model/request/user-info-issue-request.rb +113 -0
  31. data/lib/authlete/model/request/user-info-request.rb +102 -0
  32. data/lib/authlete/model/response/authentication-callback-response.rb +53 -53
  33. data/lib/authlete/model/response/authorization-fail-response.rb +48 -48
  34. data/lib/authlete/model/response/authorization-issue-response.rb +85 -48
  35. data/lib/authlete/model/response/authorization-response.rb +177 -164
  36. data/lib/authlete/model/response/client-authorization-get-list-response.rb +60 -0
  37. data/lib/authlete/model/response/client-secret-refresh-response.rb +48 -0
  38. data/lib/authlete/model/response/client-secret-update-response.rb +48 -0
  39. data/lib/authlete/model/response/developer-authentication-callback-response.rb +55 -55
  40. data/lib/authlete/model/response/granted-scopes-get-response.rb +63 -0
  41. data/lib/authlete/model/response/introspection-response.rb +163 -132
  42. data/lib/authlete/model/response/revocation-response.rb +49 -0
  43. data/lib/authlete/model/response/service-creatable-response.rb +50 -50
  44. data/lib/authlete/model/response/standard-introspection-response.rb +49 -0
  45. data/lib/authlete/model/response/token-create-response.rb +100 -0
  46. data/lib/authlete/model/response/token-fail-response.rb +49 -49
  47. data/lib/authlete/model/response/token-issue-response.rb +138 -49
  48. data/lib/authlete/model/response/token-response.rb +168 -70
  49. data/lib/authlete/model/response/token-update-response.rb +62 -0
  50. data/lib/authlete/model/response/user-info-issue-response.rb +47 -0
  51. data/lib/authlete/model/response/user-info-response.rb +85 -0
  52. data/lib/authlete/model/result.rb +44 -44
  53. data/lib/authlete/model/scope.rb +1 -1
  54. data/lib/authlete/model/service-list.rb +1 -1
  55. data/lib/authlete/model/service-owner.rb +1 -1
  56. data/lib/authlete/model/service.rb +4 -2
  57. data/lib/authlete/model/sns-credentials.rb +1 -1
  58. data/lib/authlete/model/tagged-value.rb +97 -97
  59. data/lib/authlete/utility.rb +1 -1
  60. data/lib/authlete/version.rb +2 -2
  61. metadata +24 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27dfa5aaff4b09fccd0cc250848dffcbe1c79796
4
- data.tar.gz: c5bdab7d2741a9882466f01482888c654847012d
3
+ metadata.gz: 2446d2444c75c96eb2157070944d7a7ab869267e
4
+ data.tar.gz: 03848b3546c1989c6505550adbd7b18fa4cff48f
5
5
  SHA512:
6
- metadata.gz: 1c4314f4cd74fca00bc212717fa29dc8979352f71697cba30637b37d901ab783731f0bab4ae08ebab10867dcf7306b1133a74ab24195b611625fb65cdc2741b2
7
- data.tar.gz: b9296a57a5f1d02051e419fc038663010e20ae1b134d398d28223796ee8b9d4eb7a79079143c73fbe12ae816cbf8efc50d78cc5c2cabb9040263e57570b5fccb
6
+ metadata.gz: 7be804d22a575c32eecd87dbcc3340cd54bbb5af896fe00ec9ad4777403afe6aa17f96454c77e016983559152ad928acc652858a2d2143efc1f33dcc06f479b0
7
+ data.tar.gz: fc19d2e5abb3f004035b68a4f77534c671c56d30bb979dac3740cfdef6962759a1ff5e30a84471e91371d6be2511c1734e3919c650eb397a978ca3a7b5fcd947
data/lib/authlete.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # :nodoc:
2
2
  #
3
- # Copyright (C) 2014-2015 Authlete, Inc.
3
+ # Copyright (C) 2014-2018 Authlete, Inc.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -34,6 +34,7 @@ module Authlete
34
34
  autoload :Hashable, 'authlete/model/hashable'
35
35
  autoload :Result, 'authlete/model/result'
36
36
  autoload :Pair, 'authlete/model/pair'
37
+ autoload :Property, 'authlete/model/property'
37
38
  autoload :Scope, 'authlete/model/scope'
38
39
  autoload :Service, 'authlete/model/service'
39
40
  autoload :ServiceList, 'authlete/model/service-list'
@@ -46,11 +47,22 @@ module Authlete
46
47
  autoload :AuthorizationFailRequest, 'authlete/model/request/authorization-fail-request'
47
48
  autoload :AuthorizationIssueRequest, 'authlete/model/request/authorization-issue-request'
48
49
  autoload :AuthorizationRequest, 'authlete/model/request/authorization-request'
50
+ autoload :ClientAuthorizationDeleteRequest, 'authlete/model/request/client-authorization-delete-request'
51
+ autoload :ClientAuthorizationGetListRequest, 'authlete/model/request/client-authorization-get-list-request'
52
+ autoload :ClientAuthorizationUpdateRequest, 'authlete/model/request/client-authorization-update-request'
53
+ autoload :ClientSecretUpdateRequest, 'authlete/model/request/client-secret-update-request'
49
54
  autoload :DeveloperAuthenticationCallbackRequest, 'authlete/model/request/developer-authentication-callback-request'
55
+ autoload :GrantedScopesRequest, 'authlete/model/request/granted-scopes-request'
50
56
  autoload :IntrospectionRequest, 'authlete/model/request/introspection-request'
57
+ autoload :RevocationRequest, 'authlete/model/request/revocation-request'
58
+ autoload :StandardIntrospectionRequest, 'authlete/model/request/standard-introspection-request'
59
+ autoload :TokenCreateRequest, 'authlete/model/request/token-create-request'
51
60
  autoload :TokenFailRequest, 'authlete/model/request/token-fail-request'
52
61
  autoload :TokenIssueRequest, 'authlete/model/request/token-issue-request'
53
62
  autoload :TokenRequest, 'authlete/model/request/token-request'
63
+ autoload :TokenUpdateRequest, 'authlete/model/request/token-update-request'
64
+ autoload :UserInfoIssueRequest, 'authlete/model/request/user-info-issue-request'
65
+ autoload :UserInfoRequest, 'authlete/model/request/user-info-request'
54
66
  end
55
67
 
56
68
  module Response
@@ -58,12 +70,23 @@ module Authlete
58
70
  autoload :AuthorizationFailResponse, 'authlete/model/response/authorization-fail-response'
59
71
  autoload :AuthorizationIssueResponse, 'authlete/model/response/authorization-issue-response'
60
72
  autoload :AuthorizationResponse, 'authlete/model/response/authorization-response'
73
+ autoload :ClientAuthorizationGetListResponse, 'authlete/model/response/client-authorization-get-list-response'
74
+ autoload :ClientSecretRefreshResponse, 'authlete/model/response/client-secret-refresh-response'
75
+ autoload :ClientSecretUpdateResponse, 'authlete/model/response/client-secret-update-response'
76
+ autoload :ClientSecretRefreshResponse, 'authlete/model/response/client-secret-refresh-response'
61
77
  autoload :DeveloperAuthenticationCallbackResponse, 'authlete/model/response/developer-authentication-callback-response'
78
+ autoload :GrantedScopesGetResponse, 'authlete/model/response/granted-scopes-get-response'
62
79
  autoload :IntrospectionResponse, 'authlete/model/response/introspection-response'
80
+ autoload :RevocationResponse, 'authlete/model/response/revocation-response'
63
81
  autoload :ServiceCreatableResponse, 'authlete/model/response/service-creatable-response'
82
+ autoload :StandardIntrospectionResponse, 'authlete/model/response/standard-introspection-response'
83
+ autoload :TokenCreateResponse, 'authlete/model/response/token-create-response'
64
84
  autoload :TokenFailResponse, 'authlete/model/response/token-fail-response'
65
85
  autoload :TokenIssueResponse, 'authlete/model/response/token-issue-response'
66
86
  autoload :TokenResponse, 'authlete/model/response/token-response'
87
+ autoload :TokenUpdateResponse, 'authlete/model/response/token-update-response'
88
+ autoload :UserInfoIssueResponse, 'authlete/model/response/user-info-issue-response'
89
+ autoload :UserInfoResponse, 'authlete/model/response/user-info-response'
67
90
  end
68
91
  end
69
92
  end
data/lib/authlete/api.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # :nodoc:
2
2
  #
3
- # Copyright (C) 2014-2015 Authlete, Inc.
3
+ # Copyright (C) 2014-2018 Authlete, Inc.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -91,54 +91,50 @@ module Authlete
91
91
  begin
92
92
  return RestClient::Request.new(parameters).execute
93
93
  rescue => e
94
- raise_api_exception(e)
94
+ raise create_api_exception(e)
95
95
  end
96
96
  end
97
97
 
98
- def raise_api_exception(exception)
98
+ def create_api_exception(exception)
99
99
  message = exception.message
100
100
  response = exception.response
101
101
 
102
+ # Create a base exception.
103
+ authlete_exception = Authlete::Exception.new(:message => message)
104
+
102
105
  if response.nil?
103
- # Raise an error without HTTP response information.
104
- raise Authlete::Exception.new(:message => message)
106
+ # No response information. Then, return an exception without HTTP
107
+ # response information.
108
+ return authlete_exception
105
109
  end
106
110
 
107
- # Raise an error with HTTP response information.
108
- raise_api_exception_with_http_response_info(message, response.code, response.body)
109
- end
110
-
111
- def raise_api_exception_with_http_response_info(message, status_code, response_body)
112
- # Parse the response body as a json.
113
- json = parse_response_body(response_body, message, status_code)
111
+ # Extract information from the HTTP response.
112
+ status_code = response.code
113
+ response_body = response.body
114
114
 
115
- # If the json has the HTTP response information from an Authlete API.
116
- if has_authlete_api_response_info(json)
117
- # Raise an error with it.
118
- hash = json.merge!(:statusCode => status_code)
119
- raise Authlete::Exception.new(hash)
120
- end
115
+ # Set the status code.
116
+ authlete_exception.status_code = status_code
121
117
 
122
- # Raise an error with 'status_code' and the original error message.
123
- raise Authlete::Exception.new(
124
- :message => message,
125
- :statusCode => status_code
126
- )
127
- end
118
+ response_body_json = nil
128
119
 
129
- def parse_response_body(response_body, message, status_code)
130
120
  begin
131
- return JSON.parse(response_body.to_s, :symbolize_names => true)
121
+ # Parse the response body as a json.
122
+ response_body_json = JSON.parse(response_body.to_s, :symbolize_names => true)
132
123
  rescue
133
- # Failed to parse the response body as a json.
134
- raise Authlete::Exception.new(
135
- :message => message,
136
- :statusCode => status_code
137
- )
124
+ # Failed to parse the response body as a json. Then, return an exception
125
+ # without HTTP response information.
126
+ return authlete_exception
127
+ end
128
+
129
+ # Set the Authlete API result info if it's available.
130
+ if has_authlete_api_result?(json)
131
+ authlete_exception.result = Authlete::Model::Result.new(response_body_json)
138
132
  end
133
+
134
+ authlete_exception
139
135
  end
140
136
 
141
- def has_authlete_api_response_info(json)
137
+ def has_authlete_api_result?(json)
142
138
  json && json.key?(:resultCode) && json.key?(:resultMessage)
143
139
  end
144
140
 
@@ -202,13 +198,96 @@ module Authlete
202
198
  "?" + array.join("&")
203
199
  end
204
200
 
201
+ def to_hash(object)
202
+ # Return the object if it's already a hash.
203
+ return object if object.kind_of?(Hash)
204
+
205
+ # Convert the object to a hash if possible and return it.
206
+ return object.to_hash if object.respond_to?('to_hash')
207
+
208
+ # Otherwise, raise an exception.
209
+ Authlete::Exception.new(:message => "Failed to convert the object to a hash.")
210
+ end
211
+
205
212
  public
206
213
 
214
+ # Call Authlete's /api/auth/authorization API.
215
+ #
216
+ # <tt>request</tt> is an instance of Authlete::Model::Request::AuthorizationRequest.
217
+ #
218
+ # On success, an instance of Authlete::Model::Response::AuthorizationResponse is returned.
219
+ # On error, Authlete::Exception is raised.
220
+ def authorization(request)
221
+ hash = call_api_json_service("/api/auth/authorization", to_hash(request))
222
+
223
+ Authlete::Model::Response::AuthorizationResponse.new(hash)
224
+ end
225
+
226
+ # Call Authlete's /api/auth/authorization/issue API.
227
+ #
228
+ # <tt>request</tt> is an instance of Authlete::Model::Request::AuthorizationIssueRequest.
229
+ #
230
+ # On success, an instance of Authlete::Model::Response::AuthorizationIssueResponse is returned.
231
+ # On error, Authlete::Exception is raised.
232
+ def authorization_issue(request)
233
+ hash = call_api_json_service("/api/auth/authorization/issue", to_hash(request))
234
+
235
+ Authlete::Model::Response::AuthorizationIssueResponse.new(hash)
236
+ end
237
+
238
+ # Call Authlete's /api/auth/authorization/fail API.
239
+ #
240
+ # <tt>request</tt> is an instance of Authlete::Model::Request::AuthorizationFailRequest.
241
+ #
242
+ # On success, an instance of Authlete::Model::Response::AuthorizationFailResponse is returned.
243
+ # On error, Authlete::Exception is raised.
244
+ def authorization_fail(request)
245
+ hash = call_api_json_service("/api/auth/authorization/fail", to_hash(request))
246
+
247
+ Authlete::Model::Response::AuthorizationFailResponse.new(hash)
248
+ end
249
+
250
+ # Call Authlete's /api/auth/token API.
251
+ #
252
+ # <tt>request</tt> is an instance of Authlete::Model::Request::TokenRequest.
253
+ #
254
+ # On success, an instance of Authlete::Model::Response::TokenResponse is returned.
255
+ # On error, Authlete::Exception is raised.
256
+ def token(request)
257
+ hash = call_api_json_service("/api/auth/token", to_hash(request))
258
+
259
+ Authlete::Model::Response::TokenResponse.new(hash)
260
+ end
261
+
262
+ # Call Authlete's /api/auth/token/issue API.
263
+ #
264
+ # <tt>request</tt> is an instance of Authlete::Model::Request::TokenIssueRequest.
265
+ #
266
+ # On success, an instance of Authlete::Model::Response::TokenIssueResponse is returned.
267
+ # On error, Authlete::Exception is raised.
268
+ def token_issue(request)
269
+ hash = call_api_json_service("/api/auth/token/issue", to_hash(request))
270
+
271
+ Authlete::Model::Response::TokenIssueResponse.new(hash)
272
+ end
273
+
274
+ # Call Authlete's /api/auth/token/fail API.
275
+ #
276
+ # <tt>request</tt> is an instance of Authlete::Model::Request::TokenFailRequest.
277
+ #
278
+ # On success, an instance of Authlete::Model::Response::TokenFailResponse is returned.
279
+ # On error, Authlete::Exception is raised.
280
+ def token_fail(request)
281
+ hash = call_api_json_service("/api/auth/token/fail", to_hash(request))
282
+
283
+ Authlete::Model::Response::TokenFailResponse.new(hash)
284
+ end
285
+
207
286
  # Call Authlete's /api/service/creatable API.
208
287
  #
209
288
  # On success, an instance of Authlete::Model::Response::ServiceCreatableResponse is returned.
210
289
  # On error, Authlete::Exception is raised.
211
- def service_creatable(api_key)
290
+ def service_creatable
212
291
  hash = call_api_service_owner(:get, "/api/service/creatable", nil, nil)
213
292
 
214
293
  Authlete::Model::Response::ServiceCreatableResponse.new(hash)
@@ -224,13 +303,7 @@ module Authlete
224
303
  # On success, an instance of Authlete::Model::ServiceList is returned.
225
304
  # On error, Authlete::Exception is raised.
226
305
  def service_create(service)
227
- if service.kind_of?(Hash) == false
228
- if service.respond_to?('to_hash')
229
- service = service.to_hash
230
- end
231
- end
232
-
233
- hash = call_api_json_service_owner("/api/service/create", service)
306
+ hash = call_api_json_service_owner("/api/service/create", to_hash(service))
234
307
 
235
308
  Authlete::Model::Service.new(hash)
236
309
  end
@@ -282,13 +355,7 @@ module Authlete
282
355
  # On success, an instance of Authlete::Model::Service is returned.
283
356
  # On error, Authlete::Exception is raised.
284
357
  def service_update(api_key, service)
285
- if service.kind_of?(Hash) == false
286
- if service.respond_to?('to_hash')
287
- service = service.to_hash
288
- end
289
- end
290
-
291
- hash = call_api_json_service_owner("/api/service/update/#{api_key}", service)
358
+ hash = call_api_json_service_owner("/api/service/update/#{api_key}", to_hash(service))
292
359
 
293
360
  Authlete::Model::Service.new(hash)
294
361
  end
@@ -313,30 +380,28 @@ module Authlete
313
380
  # On success, an instance of Authlete::Model::ClientList is returned.
314
381
  # On error, Authlete::Exception is raised.
315
382
  def client_create(client)
316
- if client.kind_of?(Hash) == false
317
- if client.respond_to?('to_hash')
318
- client = client.to_hash
319
- end
320
- end
321
-
322
- hash = call_api_json_service("/api/client/create", client)
383
+ hash = call_api_json_service("/api/client/create", to_hash(client))
323
384
 
324
385
  Authlete::Model::Client.new(hash)
325
386
  end
326
387
 
327
388
  # Call Authlete's /api/client/delete/{clientId} API.
328
389
  #
390
+ # <tt>client_id</tt> is the client ID of a client.
391
+ #
329
392
  # On error, Authlete::Exception is raised.
330
- def client_delete(clientId)
331
- call_api_service(:delete, "/api/client/delete/#{clientId}", nil, nil)
393
+ def client_delete(client_id)
394
+ call_api_service(:delete, "/api/client/delete/#{client_id}", nil, nil)
332
395
  end
333
396
 
334
397
  # Call Authlete's /api/client/get/{clientId} API.
335
398
  #
336
- # On success, an instance of Authlete::Model::Service is returned.
399
+ # <tt>client_id</tt> is the client ID of a client.
400
+
401
+ # On success, an instance of Authlete::Model::Client is returned.
337
402
  # On error, Authlete::Exception is raised.
338
- def client_get(clientId)
339
- hash = call_api_service(:get, "/api/client/get/#{clientId}", nil, nil)
403
+ def client_get(client_id)
404
+ hash = call_api_service(:get, "/api/client/get/#{client_id}", nil, nil)
340
405
 
341
406
  Authlete::Model::Client.new(hash)
342
407
  end
@@ -365,139 +430,219 @@ module Authlete
365
430
  # On success, an instance of Authlete::Model::Client is returned.
366
431
  # On error, Authlete::Exception is raised.
367
432
  def client_update(client)
368
- if client.kind_of?(Hash) == false
369
- if client.respond_to?('to_hash')
370
- client = client.to_hash
371
- end
372
- end
373
-
374
- hash = call_api_json_service("/api/client/update/#{client[:clientId]}", client)
433
+ hash = call_api_json_service("/api/client/update/#{client[:clientId]}", to_hash(client))
375
434
 
376
435
  Authlete::Model::Client.new(hash)
377
436
  end
378
437
 
379
- # Call Authlete's /api/auth/authorization API.
438
+ # Call Authlete's /api/client/secret/refresh/{clientIdentifier} API.
380
439
  #
381
- # On success, an instance of Authlete::Model::Response::AuthorizationResponse is returned.
440
+ # <tt>clientIdentifier</tt> is the client ID or the client ID alias of a client.
441
+ #
442
+ # On success, an instance of Authlete::Model::Response::ClientSecretRefreshResponse is returned.
382
443
  # On error, Authlete::Exception is raised.
383
- def authorization(request)
384
- if request.kind_of?(Hash) == false
385
- if request.respond_to?('to_hash')
386
- request = request.to_hash
387
- end
388
- end
444
+ def refresh_client_secret(client_identifier)
445
+ hash = call_api_service(:get, "/api/client/secret/refresh/#{client_identifier}", nil, nil)
389
446
 
390
- hash = call_api_json_service("/api/auth/authorization", request)
447
+ Authlete::Model::ClientSecretRefreshResponse.new(hash)
448
+ end
391
449
 
392
- Authlete::Model::Response::AuthorizationResponse.new(hash)
450
+ # Call Authlete's /api/client/secret/update/{clientIdentifier} API.
451
+ #
452
+ # <tt>client_identifier</tt> is the client ID or the client ID alias of a client.
453
+ # <tt>client_secret</tt> is the client secret of a client.
454
+ #
455
+ # On success, an instance of Authlete::Model::Response::ClientSecretUpdateResponse is returned.
456
+ # On error, Authlete::Exception is raised.
457
+ def update_client_secret(client_identifier, client_secret)
458
+ request = Authlete::Model::ClientSecretUpdateRequest.new(:client_secret => client_secret)
459
+
460
+ hash = call_api_json_service("/api/client/secret/update/#{client_identifier}", request.to_hash)
461
+
462
+ Authlete::Model::ClientSecretUpdateResponse.new(hash)
393
463
  end
394
464
 
395
- # Call Authlete's /api/auth/authorization/issue API.
465
+ # Call Authlete's /api/client/authorization/get/list API.
396
466
  #
397
- # On success, an instance of Authlete::Model::Response::AuthorizationIssueResponse is returned.
467
+ # <tt>request</tt> is an instance of Authlete::Model::Request::ClientSecretUpdateRequest.
468
+ #
469
+ # On success, an instance of Authlete::Model::Response::ClientAuthorizationListResponse is returned.
398
470
  # On error, Authlete::Exception is raised.
399
- def authorization_issue(request)
400
- if request.kind_of?(Hash) == false
401
- if request.respond_to?('to_hash')
402
- request = request.to_hash
403
- end
404
- end
471
+ def get_client_authorization_list(request)
472
+ hash = call_api_json_service("/api/client/authorization/get/list", to_hash(request))
405
473
 
406
- hash = call_api_json_service("/api/auth/authorization/issue", request)
474
+ Authlete::Model::ClientAuthorizationListResponse.new(hash)
475
+ end
407
476
 
408
- Authlete::Model::Response::AuthorizationIssueResponse.new(hash)
477
+ # Call Authlete's /api/client/authorization/update API.
478
+ #
479
+ # <tt>request</tt> is an instance of Authlete::Model::Request::ClientSecretUpdateRequest.
480
+ #
481
+ # On error, Authlete::Exception is raised.
482
+ def update_client_authorization(client_id, request)
483
+ call_api_json_service("/api/client/authorization/update/#{client_id}", to_hash(request))
409
484
  end
410
485
 
411
- # Call Authlete's /api/auth/authorization/fail API.
486
+ # Call Authlete's /api/client/authorization/delete/{clientId} API.
487
+ #
488
+ # <tt>client_id</tt> is the client ID of a client.
489
+ # <tt>subject</tt> is the unique ID of an end user.
412
490
  #
413
- # On success, an instance of Authlete::Model::Response::AuthorizationFailResponse is returned.
414
491
  # On error, Authlete::Exception is raised.
415
- def authorization_fail(request)
416
- if request.kind_of?(Hash) == false
417
- if request.respond_to?('to_hash')
418
- request = request.to_hash
419
- end
420
- end
492
+ def delete_client_authorization(client_id, subject)
493
+ request = Authlete::Model::ClientAuthorizationDeleteRequest.new(:subject => subject)
421
494
 
422
- hash = call_api_json_service("/api/auth/authorization/fail", request)
495
+ call_api_json_service("/api/client/authorization/delete/#{client_id}", request.to_hash)
496
+ end
423
497
 
424
- Authlete::Model::Response::AuthorizationFailResponse.new(hash)
498
+ # Call Authlete's /api/auth/introspection API.
499
+ #
500
+ # <tt>request</tt> is an instance of Authlete::Model::Request::IntrospectionRequest.
501
+ #
502
+ # On success, an instance of Authlete::Model::Response::IntrospectionResponse is returned.
503
+ # On error, Authlete::Exception is raised.
504
+ def introspection(request)
505
+ hash = call_api_json_service('/api/auth/introspection', to_hash(request))
506
+
507
+ Authlete::Model::Response::IntrospectionResponse.new(hash)
425
508
  end
426
509
 
427
- # Call Authlete's /api/auth/token API.
510
+ # Call Authlete's /api/auth/introspection/standard API.
428
511
  #
429
- # On success, an instance of Authlete::Model::Response::TokenResponse is returned.
512
+ # <tt>request</tt> is an instance of Authlete::Model::Request::StandardIntrospectionRequest.
513
+ #
514
+ # On success, an instance of Authlete::Model::Response::StandardIntrospectionResponse is returned.
430
515
  # On error, Authlete::Exception is raised.
431
- def token(request)
432
- if request.kind_of?(Hash) == false
433
- if request.respond_to?('to_hash')
434
- request = request.to_hash
435
- end
436
- end
516
+ def standard_introspection(request)
517
+ hash = call_api_json_service('/api/auth/introspection/standard', to_hash(request))
437
518
 
438
- hash = call_api_json_service("/api/auth/token", request)
519
+ Authlete::Model::Response::StandardIntrospectionResopnse.new(hash)
520
+ end
439
521
 
440
- Authlete::Model::Response::TokenResponse.new(hash)
522
+ # Call Authlete's /api/auth/revocation API.
523
+ #
524
+ # <tt>request</tt> is an instance of Authlete::Model::Request::RevocationRequest.
525
+ #
526
+ # On success, an instance of Authlete::Model::Response::RevocationResponse is returned.
527
+ # On error, Authlete::Exception is raised.
528
+ def revocation(request)
529
+ hash = call_api_json_service("/api/auth/revocation", to_hash(request))
530
+
531
+ Authlete::Model::RevocationResponse.new(hash)
441
532
  end
442
533
 
443
- # Call Authlete's /api/auth/token/issue API.
534
+ # Call Authlete's /api/auth/userinfo API.
444
535
  #
445
- # On success, an instance of Authlete::Model::Response::TokenIssueResponse is returned.
536
+ # <tt>request</tt> is an instance of Authlete::Model::Request::UserInfoRequest.
537
+ #
538
+ # On success, an instance of Authlete::Model::Response::UserInfoResponse is returned.
446
539
  # On error, Authlete::Exception is raised.
447
- def token_issue(request)
448
- if request.kind_of?(Hash) == false
449
- if request.respond_to?('to_hash')
450
- request = request.to_hash
451
- end
452
- end
540
+ def user_info(request)
541
+ hash = call_api_json_service("/api/auth/userinfo", to_hash(request))
453
542
 
454
- hash = call_api_json_service("/api/auth/token/issue", request)
543
+ Authlete::Model::UserInfoResponse.new(hash)
544
+ end
455
545
 
456
- Authlete::Model::Response::TokenIssueResponse.new(hash)
546
+ # Call Authlete's /api/auth/userinfo/issue API.
547
+ #
548
+ # <tt>request</tt> is an instance of Authlete::Model::Request::UserInfoIssueRequest.
549
+ #
550
+ # On success, an instance of Authlete::Model::Response::UserInfoIssueResponse is returned.
551
+ # On error, Authlete::Exception is raised.
552
+ def user_info_issue(request)
553
+ hash = call_api_json_service("/api/auth/userinfo/issue", to_hash(request))
554
+
555
+ Authlete::Model::UserInfoIssueResponse.new(hash)
457
556
  end
458
557
 
459
- # Call Authlete's /api/auth/token/fail API.
558
+ # Call Authlete's /api/service/jwks/get API.
460
559
  #
461
- # On success, an instance of Authlete::Model::Response::TokenFailResponse is returned.
560
+ # <tt>params</tt> is an optional hash which contains query parameters
561
+ # for /api/service/jwks/get API. The hash can contain the following parameters.
562
+ #
563
+ # <tt>:includePrivateKeys</tt>
564
+ # This boolean value indicates whether the response should include the
565
+ # private keys associated with the service or not. If "true", the private
566
+ # keys are included in the response. The default value is "false".
567
+ #
568
+ # <tt>:pretty</tt>
569
+ # This boolean value indicates whether the JSON in the response should
570
+ # be formatted or not. If true, the JSON in the response is pretty-formatted.
571
+ # The default value is false.
572
+ #
573
+ # On success, a JWK Set for a service is returned.
462
574
  # On error, Authlete::Exception is raised.
463
- def token_fail(request)
464
- if request.kind_of?(Hash) == false
465
- if request.respond_to?('to_hash')
466
- request = request.to_hash
467
- end
468
- end
575
+ def get_service_jwks(params = nil)
576
+ call_api_service(:get, "/api/service/jwks/get#{to_query(params)}", nil, nil)
577
+ end
578
+
579
+ # Call Authlete's /api/service/configuration API.
580
+ #
581
+ # <tt>params</tt> is an optional hash which contains query parameters
582
+ # for /api/service/configuration API. The hash can contain the following
583
+ # parameter.
584
+ #
585
+ # <tt>:includePrivateKeys</tt>
586
+ # This boolean value indicates whether the response should include the
587
+ # private keys associated with the service or not. If "true", the private
588
+ # keys are included in the response. The default value is "false".
589
+ #
590
+ # On success, configuration information of a service is returned.
591
+ # On error, Authlete::Exception is raised.
592
+ def get_service_configuration(params = nil)
593
+ call_api_service(:get, "/api/service/configuration#{to_query(params)}", nil, nil)
594
+ end
469
595
 
470
- hash = call_api_json_service("/api/auth/token/fail", request)
596
+ # Call Authlete's /api/auth/token/create API.
597
+ #
598
+ # <tt>request</tt> is an instance of Authlete::Model::Request::TokenCreateRequest.
599
+ #
600
+ # On success, an instance of Authlete::Model::Response::TokenCreateResponse is returned.
601
+ # On error, Authlete::Exception is raised.
602
+ def token_create(request)
603
+ hash = call_api_json_service("/api/auth/token/create", to_hash(request))
471
604
 
472
- Authlete::Model::Response::TokenFailResponse.new(hash)
605
+ Authlete::Model::TokenCreateResponse.new(hash)
473
606
  end
474
607
 
475
- # Call Authlete's /api/auth/introspection API.
608
+ # Call Authlete's /api/auth/token/update API.
476
609
  #
477
- # <tt>token</tt> is an access token presented by a client application.
478
- # This is a must parameter. In a typical case, a client application uses
479
- # one of the means listed in {RFC 6750}[https://tools.ietf.org/html/rfc6750]
480
- # to present an access token to a {protected resource endpoint}
481
- # [https://tools.ietf.org/html/rfc6749#section-7].
610
+ # <tt>request</tt> is an instance of Authlete::Model::Request::TokenUpdateRequest.
482
611
  #
483
- # <tt>scopes</tt> is an array of scope names. This is an optional parameter.
484
- # When the specified scopes are not covered by the access token, Authlete
485
- # prepares the content of the error response.
612
+ # On success, an instance of Authlete::Model::Response::TokenUpdateResponse is returned.
613
+ # On error, Authlete::Exception is raised.
614
+ def token_update(request)
615
+ hash = call_api_json_service("/api/auth/token/update", to_hash(request))
616
+
617
+ Authlete::Model::TokenUpdateResponse.new(hash)
618
+ end
619
+
620
+ # Call Authlete's /api/client/granted_scopes/get/{clientId} API.
486
621
  #
487
- # <tt>subject</tt> is a unique identifier of an end-user. This is an optional
488
- # parameter. When the access token is not associated with the specified
489
- # subject, Authlete prepares the content of the error response.
622
+ # <tt>client_id</tt> is the client ID of a client.
623
+ # <tt>subject</tt> is the unique ID of an end user.
490
624
  #
491
- # On success, this method returns an instance of
492
- # <tt>Authlete::Model::Response::IntrospectionResponse</tt>. On error, this method
493
- # throws <tt>RestClient::Exception</tt>.
494
- def introspection(token, scopes = nil, subject = nil)
495
- hash = call_api_json_service('/api/auth/introspection',
496
- :token => token, :scopes => scopes, :subject => subject)
625
+ # On success, an instance of Authlete::Model::Response::GrantedScopesGetResponse is returned.
626
+ # On error, Authlete::Exception is raised.
627
+ def get_granted_scopes(client_id, subject)
628
+ request = Authlete::Model::GrantedScopesRequest.new(:subject => subject)
497
629
 
498
- Authlete::Model::Response::IntrospectionResponse.new(hash)
630
+ hash = call_api_json_service("/api/client/granted_scopes/get/#{client_id}", request.to_hash)
631
+
632
+ Authlete::Model::Response::GrantedScopesGetResponse.new(hash)
499
633
  end
500
634
 
635
+ # Call Authlete's /api/client/granted_scopes/delete/{clientId} API.
636
+ #
637
+ # <tt>client_id</tt> is the client ID of a client.
638
+ # <tt>subject</tt> is the unique ID of an end user.
639
+ #
640
+ # On error, Authlete::Exception is raised.
641
+ def delete_granted_scopes(client_id, subject)
642
+ request = Authlete::Model::GrantedScopesRequest.new(:subject => subject)
643
+
644
+ call_api_json_service("/api/client/granted_scopes/delete/#{client_id}", request.to_hash)
645
+ end
501
646
 
502
647
  # Ensure that the request contains a valid access token.
503
648
  #
@@ -534,9 +679,16 @@ module Authlete
534
679
  )
535
680
  end
536
681
 
682
+ # Create a request for Authlete's /api/auth/introspection API.
683
+ request = Authlete::Model::Request::IntrospectionRequest.new(
684
+ :token => access_token,
685
+ :scopes => scopes,
686
+ :subject => subject
687
+ )
688
+
537
689
  begin
538
690
  # Call Authlete's /api/auth/introspection API to introspect the access token.
539
- result = introspection(access_token, scopes, subject)
691
+ result = introspection(request)
540
692
  rescue => e
541
693
  # Error message.
542
694
  message = build_error_message('/api/auth/introspection', e)