authlete 1.0.24 → 1.1.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Makefile +40 -0
- data/Rakefile +5 -0
- data/authlete.gemspec +2 -2
- data/lib/authlete.rb +28 -9
- data/lib/authlete/api.rb +146 -321
- data/lib/authlete/authentication-server.rb +2 -2
- data/lib/authlete/exception.rb +14 -15
- data/lib/authlete/model/base.rb +30 -0
- data/lib/authlete/model/client-extension.rb +17 -119
- data/lib/authlete/model/client.rb +196 -345
- data/lib/authlete/model/hashable.rb +13 -33
- data/lib/authlete/model/named-uri.rb +13 -74
- data/lib/authlete/model/pair.rb +13 -74
- data/lib/authlete/model/param-initializer.rb +45 -0
- data/lib/authlete/model/property.rb +15 -85
- data/lib/authlete/model/request/authentication-callback-request.rb +63 -55
- data/lib/authlete/model/request/authorization-fail-request.rb +14 -75
- data/lib/authlete/model/request/authorization-issue-request.rb +38 -119
- data/lib/authlete/model/request/authorization-request.rb +8 -73
- data/lib/authlete/model/request/backchannel-authentication-complete-request.rb +97 -0
- data/lib/authlete/model/request/backchannel-authentication-fail-request.rb +55 -0
- data/lib/authlete/model/request/backchannel-authentication-issue-request.rb +37 -0
- data/lib/authlete/model/request/backchannel-authentication-request.rb +63 -0
- data/lib/authlete/model/request/base.rb +26 -0
- data/lib/authlete/model/request/client-authorization-delete-request.rb +7 -93
- data/lib/authlete/model/request/client-authorization-get-list-request.rb +17 -89
- data/lib/authlete/model/request/client-authorization-update-request.rb +11 -86
- data/lib/authlete/model/request/client-registration-request.rb +49 -0
- data/lib/authlete/model/request/client-secret-update-request.rb +7 -89
- data/lib/authlete/model/request/developer-authentication-callback-request.rb +40 -43
- data/lib/authlete/model/request/device-authorization-request.rb +63 -0
- data/lib/authlete/model/request/device-complete-request.rb +99 -0
- data/lib/authlete/model/request/device-verification-request.rb +40 -0
- data/lib/authlete/model/request/granted-scopes-request.rb +8 -74
- data/lib/authlete/model/request/introspection-request.rb +24 -83
- data/lib/authlete/model/request/pushed-auth-req-request.rb +64 -0
- data/lib/authlete/model/request/revocation-request.rb +14 -88
- data/lib/authlete/model/request/standard-introspection-request.rb +8 -73
- data/lib/authlete/model/request/token-create-request.rb +52 -183
- data/lib/authlete/model/request/token-fail-request.rb +12 -74
- data/lib/authlete/model/request/token-issue-request.rb +22 -80
- data/lib/authlete/model/request/token-request.rb +44 -81
- data/lib/authlete/model/request/token-update-request.rb +35 -121
- data/lib/authlete/model/request/user-info-issue-request.rb +14 -80
- data/lib/authlete/model/request/user-info-request.rb +25 -70
- data/lib/authlete/model/response/access-token.rb +96 -0
- data/lib/authlete/model/response/authentication-callback-response.rb +24 -19
- data/lib/authlete/model/response/authorization-fail-response.rb +13 -15
- data/lib/authlete/model/response/authorization-issue-response.rb +29 -32
- data/lib/authlete/model/response/authorization-response.rb +97 -123
- data/lib/authlete/model/response/authorized-client-list-response.rb +37 -0
- data/lib/authlete/model/response/backchannel-authentication-complete-response.rb +143 -0
- data/lib/authlete/model/response/backchannel-authentication-fail-response.rb +47 -0
- data/lib/authlete/model/response/backchannel-authentication-issue-response.rb +63 -0
- data/lib/authlete/model/response/backchannel-authentication-response.rb +160 -0
- data/lib/authlete/model/response/client-list-response.rb +58 -0
- data/lib/authlete/model/response/client-registration-response.rb +50 -0
- data/lib/authlete/model/response/client-secret-refresh-response.rb +12 -12
- data/lib/authlete/model/response/client-secret-update-response.rb +12 -12
- data/lib/authlete/model/response/developer-authentication-callback-response.rb +24 -19
- data/lib/authlete/model/response/device-authorization-response.rb +134 -0
- data/lib/authlete/model/response/device-complete-response.rb +39 -0
- data/lib/authlete/model/response/device-verification-response.rb +96 -0
- data/lib/authlete/model/response/granted-scopes-get-response.rb +27 -19
- data/lib/authlete/model/response/introspection-response.rb +64 -58
- data/lib/authlete/model/response/pushed-auth-req-response.rb +59 -0
- data/lib/authlete/model/response/revocation-response.rb +12 -15
- data/lib/authlete/model/response/service-list-response.rb +54 -0
- data/lib/authlete/model/response/standard-introspection-response.rb +13 -15
- data/lib/authlete/model/response/token-create-response.rb +50 -55
- data/lib/authlete/model/response/token-fail-response.rb +14 -17
- data/lib/authlete/model/response/token-issue-response.rb +49 -62
- data/lib/authlete/model/response/token-list-response.rb +64 -0
- data/lib/authlete/model/response/token-response.rb +59 -79
- data/lib/authlete/model/response/token-update-response.rb +28 -23
- data/lib/authlete/model/response/user-info-issue-response.rb +16 -16
- data/lib/authlete/model/response/user-info-response.rb +48 -42
- data/lib/authlete/model/result.rb +14 -13
- data/lib/authlete/model/scope.rb +29 -119
- data/lib/authlete/model/service-owner.rb +32 -116
- data/lib/authlete/model/service.rb +464 -685
- data/lib/authlete/model/sns-credentials.rb +18 -91
- data/lib/authlete/model/tagged-value.rb +14 -69
- data/lib/authlete/utility.rb +3 -32
- data/lib/authlete/version.rb +3 -3
- data/test/authlete/model/request/test_authentication-callback-request.rb +100 -0
- data/test/authlete/model/request/test_authorization-fail-request.rb +67 -0
- data/test/authlete/model/request/test_authorization-issue-request.rb +94 -0
- data/test/authlete/model/request/test_authorization-request.rb +57 -0
- data/test/authlete/model/request/test_backchannel-authentication-complete-request.rb +102 -0
- data/test/authlete/model/request/test_backchannel-authentication-fail-request.rb +71 -0
- data/test/authlete/model/request/test_backchannel-authentication-issue-request.rb +57 -0
- data/test/authlete/model/request/test_backchannel-authentication-request.rb +75 -0
- data/test/authlete/model/request/test_client-authorization-delete-request.rb +57 -0
- data/test/authlete/model/request/test_client-authorization-get-list-request.rb +71 -0
- data/test/authlete/model/request/test_client-authorization-update-request.rb +63 -0
- data/test/authlete/model/request/test_client-registration-request.rb +68 -0
- data/test/authlete/model/request/test_device-authorization-request.rb +75 -0
- data/test/authlete/model/request/test_device-complete-request.rb +102 -0
- data/test/authlete/model/request/test_device-verification-request.rb +57 -0
- data/test/authlete/model/request/test_granted-scopes-request.rb +57 -0
- data/test/authlete/model/request/test_introspection-request.rb +79 -0
- data/test/authlete/model/request/test_pushed-auth-req-request.rb +75 -0
- data/test/authlete/model/request/test_revocation-request.rb +67 -0
- data/test/authlete/model/request/test_standard-introspection-request.rb +57 -0
- data/test/authlete/model/request/test_token-create-request.rb +110 -0
- data/test/authlete/model/request/test_token-fail-request.rb +63 -0
- data/test/authlete/model/request/test_token-issue-request.rb +70 -0
- data/test/authlete/model/request/test_token-request.rb +94 -0
- data/test/authlete/model/request/test_token-update-request.rb +82 -0
- data/test/authlete/model/request/test_user-info-issue-request.rb +67 -0
- data/test/authlete/model/request/test_user-info-request.rb +75 -0
- data/test/authlete/model/response/test_access-token.rb +101 -0
- data/test/authlete/model/response/test_authorization-fail-response.rb +68 -0
- data/test/authlete/model/response/test_authorization-issue-response.rb +92 -0
- data/test/authlete/model/response/test_authorization-response.rb +145 -0
- data/test/authlete/model/response/test_authorized-client-list-response.rb +83 -0
- data/test/authlete/model/response/test_backchannel-authentication-complete-response.rb +132 -0
- data/test/authlete/model/response/test_backchannel-authentication-fail-response.rb +68 -0
- data/test/authlete/model/response/test_backchannel-authentication-issue-response.rb +80 -0
- data/test/authlete/model/response/test_backchannel-authentication-response.rb +156 -0
- data/test/authlete/model/response/test_client-list-response.rb +79 -0
- data/test/authlete/model/response/test_client-secret-refresh-response.rb +68 -0
- data/test/authlete/model/response/test_client-secret-update-response.rb +68 -0
- data/test/authlete/model/response/test_device-authorization-response.rb +140 -0
- data/test/authlete/model/response/test_device-complete-response.rb +64 -0
- data/test/authlete/model/response/test_device-verification-response.rb +112 -0
- data/test/authlete/model/response/test_granted-scopes-get-response.rb +84 -0
- data/test/authlete/model/response/test_introspection-response.rb +127 -0
- data/test/authlete/model/response/test_pushed-auth-req-response.rb +76 -0
- data/test/authlete/model/response/test_revocation-response.rb +68 -0
- data/test/authlete/model/response/test_service-list-response.rb +72 -0
- data/test/authlete/model/response/test_standard-introspection-response.rb +68 -0
- data/test/authlete/model/response/test_token-create-response.rb +107 -0
- data/test/authlete/model/response/test_token-fail-response.rb +68 -0
- data/test/authlete/model/response/test_token-issue-response.rb +127 -0
- data/test/authlete/model/response/test_token-list-response.rb +84 -0
- data/test/authlete/model/response/test_token-response.rb +147 -0
- data/test/authlete/model/response/test_token-update-response.rb +87 -0
- data/test/authlete/model/response/test_user-info-issue-response.rb +68 -0
- data/test/authlete/model/response/test_user-info-response.rb +107 -0
- data/test/authlete/model/test_client-extension.rb +95 -0
- data/test/authlete/model/test_client.rb +461 -0
- data/test/authlete/model/test_named-uri.rb +85 -0
- data/test/authlete/model/test_pair.rb +85 -0
- data/test/authlete/model/test_property.rb +90 -0
- data/test/authlete/model/test_result.rb +68 -0
- data/test/authlete/model/test_scope.rb +106 -0
- data/test/authlete/model/test_service-owner.rb +80 -0
- data/test/authlete/model/test_service.rb +614 -0
- data/test/authlete/model/test_sns-credentials.rb +88 -0
- data/test/authlete/model/test_tagged-value.rb +83 -0
- data/test/authlete/test_exception.rb +70 -0
- metadata +169 -9
- data/lib/authlete/model/client-list.rb +0 -129
- data/lib/authlete/model/response/client-authorization-get-list-response.rb +0 -60
- data/lib/authlete/model/response/service-creatable-response.rb +0 -51
- data/lib/authlete/model/service-list.rb +0 -128
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb006019176ce727d7082df01b8dfb203196355f
|
4
|
+
data.tar.gz: 8d2ceba5ad8a6c3c558e06d78a709fff67db068e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24e8bdbe35decd978515837684ab16c8e264a431a1ff0d33ed5372bbdb93c83ce9a118810c17ac5984d72ac92d29933e6e4ad59870c0c187a45c4f59c79965a2
|
7
|
+
data.tar.gz: d13c223cec60659b62309f4f1ace44800666a6d09518e7ac575f22b7964ac94210b1c7c86170723783b0c50d850abcdd391d7cc8779e32e49a0504f59ac9106f
|
data/.gitignore
CHANGED
data/Makefile
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (C) 2020 Authlete, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing,
|
11
|
+
# software distributed under the License is distributed on an
|
12
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
13
|
+
# either express or implied. See the License for the specific
|
14
|
+
# language governing permissions and limitations under the
|
15
|
+
# License.
|
16
|
+
|
17
|
+
|
18
|
+
#==================================================
|
19
|
+
# VARIABLES
|
20
|
+
#==================================================
|
21
|
+
RAKE = rake
|
22
|
+
|
23
|
+
|
24
|
+
#==================================================
|
25
|
+
# TARGETS
|
26
|
+
#==================================================
|
27
|
+
.PHONY: _default help test
|
28
|
+
|
29
|
+
|
30
|
+
_default: help
|
31
|
+
|
32
|
+
|
33
|
+
help:
|
34
|
+
@printf '%s\n' \
|
35
|
+
"help - shows this help text." \
|
36
|
+
"test - runs tests."
|
37
|
+
|
38
|
+
test:
|
39
|
+
$(RAKE) test
|
40
|
+
|
data/Rakefile
CHANGED
data/authlete.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'authlete/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "authlete"
|
8
8
|
spec.version = Authlete::VERSION
|
9
|
-
spec.authors = ["Takahiko Kawasaki"]
|
10
|
-
spec.email = ["
|
9
|
+
spec.authors = ["Takahiko Kawasaki", "Hideki Ikeda"]
|
10
|
+
spec.email = ["admin@authlete.com"]
|
11
11
|
spec.summary = "A library for Authlete Web APIs"
|
12
12
|
spec.description = "A library for Authlete Web APIs. See https://docs.authlete.com/ for details."
|
13
13
|
spec.homepage = "https://www.authlete.com/"
|
data/lib/authlete.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# :nodoc:
|
2
2
|
#
|
3
|
-
# Copyright (C) 2014-
|
3
|
+
# Copyright (C) 2014-2020 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.
|
@@ -18,18 +18,16 @@
|
|
18
18
|
require 'authlete/version'
|
19
19
|
|
20
20
|
|
21
|
-
# == Authlete Module
|
22
|
-
#
|
23
|
-
# A library for Authlete Web APIs.
|
24
21
|
module Authlete
|
25
22
|
autoload :AuthenticationServer, 'authlete/authentication-server'
|
26
23
|
autoload :Api, 'authlete/api'
|
27
24
|
autoload :Exception, 'authlete/exception'
|
25
|
+
autoload :ParamInitializer, 'authlete/model/param-initializer'
|
28
26
|
autoload :Utility, 'authlete/utility'
|
29
27
|
|
30
28
|
module Model
|
29
|
+
autoload :Base, 'authlete/model/base'
|
31
30
|
autoload :Client, 'authlete/model/client'
|
32
|
-
autoload :ClientList, 'authlete/model/client-list'
|
33
31
|
autoload :ClientExtension, 'authlete/model/client-extension'
|
34
32
|
autoload :Hashable, 'authlete/model/hashable'
|
35
33
|
autoload :Result, 'authlete/model/result'
|
@@ -37,7 +35,6 @@ module Authlete
|
|
37
35
|
autoload :Property, 'authlete/model/property'
|
38
36
|
autoload :Scope, 'authlete/model/scope'
|
39
37
|
autoload :Service, 'authlete/model/service'
|
40
|
-
autoload :ServiceList, 'authlete/model/service-list'
|
41
38
|
autoload :ServiceOwner, 'authlete/model/service-owner'
|
42
39
|
autoload :SnsCredentials, 'authlete/model/sns-credentials'
|
43
40
|
autoload :TaggedValue, 'authlete/model/tagged-value'
|
@@ -48,13 +45,23 @@ module Authlete
|
|
48
45
|
autoload :AuthorizationFailRequest, 'authlete/model/request/authorization-fail-request'
|
49
46
|
autoload :AuthorizationIssueRequest, 'authlete/model/request/authorization-issue-request'
|
50
47
|
autoload :AuthorizationRequest, 'authlete/model/request/authorization-request'
|
48
|
+
autoload :BackchannelAuthenticationCompleteRequest, 'authlete/model/request/backchannel-authentication-complete-request'
|
49
|
+
autoload :BackchannelAuthenticationFailRequest, 'authlete/model/request/backchannel-authentication-fail-request'
|
50
|
+
autoload :BackchannelAuthenticationIssueRequest, 'authlete/model/request/backchannel-authentication-issue-request'
|
51
|
+
autoload :BackchannelAuthenticationRequest, 'authlete/model/request/backchannel-authentication-request'
|
52
|
+
autoload :Base, 'authlete/model/request/base'
|
51
53
|
autoload :ClientAuthorizationDeleteRequest, 'authlete/model/request/client-authorization-delete-request'
|
52
54
|
autoload :ClientAuthorizationGetListRequest, 'authlete/model/request/client-authorization-get-list-request'
|
53
55
|
autoload :ClientAuthorizationUpdateRequest, 'authlete/model/request/client-authorization-update-request'
|
56
|
+
autoload :ClientRegistrationRequest, 'authlete/model/request/client-registration-request'
|
54
57
|
autoload :ClientSecretUpdateRequest, 'authlete/model/request/client-secret-update-request'
|
55
58
|
autoload :DeveloperAuthenticationCallbackRequest, 'authlete/model/request/developer-authentication-callback-request'
|
59
|
+
autoload :DeviceAuthorizationRequest, 'authlete/model/request/device-authorization-request'
|
60
|
+
autoload :DeviceCompleteRequest, 'authlete/model/request/device-complete-request'
|
61
|
+
autoload :DeviceVerificationRequest, 'authlete/model/request/device-verification-request'
|
56
62
|
autoload :GrantedScopesRequest, 'authlete/model/request/granted-scopes-request'
|
57
63
|
autoload :IntrospectionRequest, 'authlete/model/request/introspection-request'
|
64
|
+
autoload :PushedAuthReqRequest, 'authlete/model/request/pushed-auth-req-request'
|
58
65
|
autoload :RevocationRequest, 'authlete/model/request/revocation-request'
|
59
66
|
autoload :StandardIntrospectionRequest, 'authlete/model/request/standard-introspection-request'
|
60
67
|
autoload :TokenCreateRequest, 'authlete/model/request/token-create-request'
|
@@ -67,27 +74,39 @@ module Authlete
|
|
67
74
|
end
|
68
75
|
|
69
76
|
module Response
|
77
|
+
autoload :AccessToken, 'authlete/model/response/access-token'
|
70
78
|
autoload :AuthenticationCallbackResponse, 'authlete/model/response/authentication-callback-response'
|
71
79
|
autoload :AuthorizationFailResponse, 'authlete/model/response/authorization-fail-response'
|
72
80
|
autoload :AuthorizationIssueResponse, 'authlete/model/response/authorization-issue-response'
|
73
81
|
autoload :AuthorizationResponse, 'authlete/model/response/authorization-response'
|
74
|
-
autoload :
|
82
|
+
autoload :AuthorizedClientListResponse, 'authlete/model/response/authorized-client-list-response'
|
83
|
+
autoload :BackchannelAuthenticationCompleteResponse, 'authlete/model/response/backchannel-authentication-complete-response'
|
84
|
+
autoload :BackchannelAuthenticationFailResponse, 'authlete/model/response/backchannel-authentication-fail-response'
|
85
|
+
autoload :BackchannelAuthenticationIssueResponse, 'authlete/model/response/backchannel-authentication-issue-response'
|
86
|
+
autoload :BackchannelAuthenticationResponse, 'authlete/model/response/backchannel-authentication-response'
|
87
|
+
autoload :ClientListResponse, 'authlete/model/response/client-list-response'
|
88
|
+
autoload :ClientRegistrationResponse, 'authlete/model/response/client-registration-response'
|
75
89
|
autoload :ClientSecretRefreshResponse, 'authlete/model/response/client-secret-refresh-response'
|
76
90
|
autoload :ClientSecretUpdateResponse, 'authlete/model/response/client-secret-update-response'
|
77
91
|
autoload :ClientSecretRefreshResponse, 'authlete/model/response/client-secret-refresh-response'
|
78
92
|
autoload :DeveloperAuthenticationCallbackResponse, 'authlete/model/response/developer-authentication-callback-response'
|
93
|
+
autoload :DeviceAuthorizationResponse, 'authlete/model/response/device-authorization-response'
|
94
|
+
autoload :DeviceCompleteResponse, 'authlete/model/response/device-complete-response'
|
95
|
+
autoload :DeviceVerificationResponse, 'authlete/model/response/device-verification-response'
|
79
96
|
autoload :GrantedScopesGetResponse, 'authlete/model/response/granted-scopes-get-response'
|
80
97
|
autoload :IntrospectionResponse, 'authlete/model/response/introspection-response'
|
98
|
+
autoload :PushedAuthReqResponse, 'authlete/model/response/pushed-auth-req-response'
|
81
99
|
autoload :RevocationResponse, 'authlete/model/response/revocation-response'
|
82
|
-
autoload :
|
100
|
+
autoload :ServiceListResponse, 'authlete/model/response/service-list-response'
|
83
101
|
autoload :StandardIntrospectionResponse, 'authlete/model/response/standard-introspection-response'
|
84
102
|
autoload :TokenCreateResponse, 'authlete/model/response/token-create-response'
|
85
103
|
autoload :TokenFailResponse, 'authlete/model/response/token-fail-response'
|
86
104
|
autoload :TokenIssueResponse, 'authlete/model/response/token-issue-response'
|
105
|
+
autoload :TokenListResponse, 'authlete/model/response/token-list-response'
|
87
106
|
autoload :TokenResponse, 'authlete/model/response/token-response'
|
88
107
|
autoload :TokenUpdateResponse, 'authlete/model/response/token-update-response'
|
89
108
|
autoload :UserInfoIssueResponse, 'authlete/model/response/user-info-issue-response'
|
90
109
|
autoload :UserInfoResponse, 'authlete/model/response/user-info-response'
|
91
110
|
end
|
92
111
|
end
|
93
|
-
end
|
112
|
+
end
|
data/lib/authlete/api.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# :nodoc:
|
2
2
|
#
|
3
|
-
# Copyright (C) 2014-
|
3
|
+
# Copyright (C) 2014-2020 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.
|
@@ -21,70 +21,46 @@ require 'rest-client'
|
|
21
21
|
|
22
22
|
|
23
23
|
module Authlete
|
24
|
-
# == Authlete::Api Module
|
25
|
-
#
|
26
|
-
# A web client that accesses Authlete Web APIs.
|
27
|
-
#
|
28
24
|
class Api
|
29
25
|
include Authlete::Utility
|
30
26
|
|
31
|
-
# The host which provides Authlete Web APIs.
|
32
|
-
# For example, <tt>https://dev-api.authlete.com</tt>
|
33
27
|
attr_accessor :host
|
34
|
-
|
35
|
-
# The API key of a service owner.
|
36
28
|
attr_accessor :service_owner_api_key
|
37
|
-
|
38
|
-
# The API secret of a service owner.
|
39
29
|
attr_accessor :service_owner_api_secret
|
40
|
-
|
41
|
-
# The API key of a service.
|
42
30
|
attr_accessor :service_api_key
|
43
|
-
|
44
|
-
# The API secret of a service.
|
45
31
|
attr_accessor :service_api_secret
|
46
|
-
|
47
|
-
# Extra HTTP headers
|
48
32
|
attr_accessor :extra_headers
|
49
33
|
|
50
34
|
private
|
51
35
|
|
52
|
-
# The constructor which takes a hash containing configuration
|
53
|
-
# parameters. Valid configuration parameter names are as follows.
|
54
|
-
#
|
55
|
-
# - <tt>:host</tt>
|
56
|
-
# - <tt>:service_owner_api_key</tt>
|
57
|
-
# - <tt>:service_owner_api_secret</tt>
|
58
|
-
# - <tt>:service_api_key</tt>
|
59
|
-
# - <tt>:service_api_secret</tt>
|
60
|
-
#
|
61
36
|
def initialize(config = {})
|
62
|
-
@host =
|
63
|
-
@service_owner_api_key =
|
64
|
-
@service_owner_api_secret =
|
65
|
-
@service_api_key =
|
66
|
-
@service_api_secret =
|
37
|
+
@host = config[:host]
|
38
|
+
@service_owner_api_key = config[:service_owner_api_key]
|
39
|
+
@service_owner_api_secret = config[:service_owner_api_secret]
|
40
|
+
@service_api_key = config[:service_api_key]
|
41
|
+
@service_api_secret = config[:service_api_secret]
|
42
|
+
@extra_headers = nil
|
67
43
|
end
|
68
44
|
|
69
45
|
def call_api(method, path, content_type, payload, user, password)
|
70
46
|
headers = {}
|
71
47
|
|
72
|
-
headers.merge!(:
|
48
|
+
headers.merge!(content_type: content_type) unless content_type.nil?
|
73
49
|
|
74
50
|
headers.merge!(@extra_headers) unless @extra_headers.nil?
|
75
51
|
|
76
52
|
response = execute(
|
77
|
-
:
|
78
|
-
:
|
79
|
-
:
|
80
|
-
:
|
81
|
-
:
|
82
|
-
:
|
53
|
+
method: method,
|
54
|
+
url: @host + path,
|
55
|
+
headers: headers,
|
56
|
+
payload: payload,
|
57
|
+
user: user,
|
58
|
+
password: password
|
83
59
|
)
|
84
60
|
|
85
61
|
body = body_as_string(response)
|
86
62
|
|
87
|
-
body
|
63
|
+
body && JSON.parse(body, symbolize_names: true)
|
88
64
|
end
|
89
65
|
|
90
66
|
def execute(parameters)
|
@@ -102,7 +78,7 @@ module Authlete
|
|
102
78
|
response = exception.response
|
103
79
|
|
104
80
|
# Create a base exception.
|
105
|
-
authlete_exception = Authlete::Exception.new(:
|
81
|
+
authlete_exception = Authlete::Exception.new(message: message)
|
106
82
|
|
107
83
|
if response.nil?
|
108
84
|
# No response information. Then, return an exception without HTTP
|
@@ -121,7 +97,7 @@ module Authlete
|
|
121
97
|
|
122
98
|
begin
|
123
99
|
# Parse the response body as a json.
|
124
|
-
response_body_json = JSON.parse(response_body.to_s, :
|
100
|
+
response_body_json = JSON.parse(response_body.to_s, symbolize_names: true)
|
125
101
|
rescue
|
126
102
|
# Failed to parse the response body as a json. Then, return an exception
|
127
103
|
# without HTTP response information.
|
@@ -145,11 +121,11 @@ module Authlete
|
|
145
121
|
|
146
122
|
body = response.body.to_s
|
147
123
|
|
148
|
-
body.
|
124
|
+
body.empty? ? nil : body
|
149
125
|
end
|
150
126
|
|
151
127
|
def on_general_exception(exception)
|
152
|
-
Authlete::Exception.new(:
|
128
|
+
Authlete::Exception.new(message: exception.message)
|
153
129
|
end
|
154
130
|
|
155
131
|
def call_api_service_owner(method, path, content_type, payload)
|
@@ -182,26 +158,10 @@ module Authlete
|
|
182
158
|
end
|
183
159
|
end
|
184
160
|
|
185
|
-
def emit_rack_error_message(request, message)
|
186
|
-
begin
|
187
|
-
# Logging if possible.
|
188
|
-
request.env['rack.errors'].write("ERROR: #{message}\n")
|
189
|
-
rescue => e
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
161
|
def to_query(params)
|
194
|
-
if params.nil?
|
195
|
-
return ""
|
196
|
-
end
|
197
|
-
|
198
|
-
array = []
|
199
|
-
|
200
|
-
params.each do |key, value|
|
201
|
-
array.push("#{key}=#{value}")
|
202
|
-
end
|
162
|
+
return '' if params.nil? or params.empty?
|
203
163
|
|
204
|
-
|
164
|
+
'?' + params.map { |k, v| "#{k.to_s}=#{v.to_s}" }.join('&')
|
205
165
|
end
|
206
166
|
|
207
167
|
def to_hash(object)
|
@@ -212,442 +172,299 @@ module Authlete
|
|
212
172
|
return object.to_hash if object.respond_to?('to_hash')
|
213
173
|
|
214
174
|
# Otherwise, raise an exception.
|
215
|
-
Authlete::Exception.new(:
|
175
|
+
Authlete::Exception.new(message: "Failed to convert the object to a hash.")
|
176
|
+
end
|
177
|
+
|
178
|
+
def extract_requestable_scopes(hash)
|
179
|
+
hash.kind_of?(Hash) ? hash[:requestableScopes] : nil
|
216
180
|
end
|
217
181
|
|
218
182
|
public
|
219
183
|
|
220
|
-
# Call Authlete's /api/auth/authorization API.
|
221
|
-
#
|
222
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::AuthorizationRequest.
|
223
|
-
#
|
224
|
-
# On success, an instance of Authlete::Model::Response::AuthorizationResponse is returned.
|
225
|
-
# On error, Authlete::Exception is raised.
|
226
184
|
def authorization(request)
|
227
185
|
hash = call_api_json_service("/api/auth/authorization", to_hash(request))
|
228
186
|
|
229
187
|
Authlete::Model::Response::AuthorizationResponse.new(hash)
|
230
188
|
end
|
231
189
|
|
232
|
-
# Call Authlete's /api/auth/authorization/issue API.
|
233
|
-
#
|
234
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::AuthorizationIssueRequest.
|
235
|
-
#
|
236
|
-
# On success, an instance of Authlete::Model::Response::AuthorizationIssueResponse is returned.
|
237
|
-
# On error, Authlete::Exception is raised.
|
238
190
|
def authorization_issue(request)
|
239
191
|
hash = call_api_json_service("/api/auth/authorization/issue", to_hash(request))
|
240
192
|
|
241
193
|
Authlete::Model::Response::AuthorizationIssueResponse.new(hash)
|
242
194
|
end
|
243
195
|
|
244
|
-
# Call Authlete's /api/auth/authorization/fail API.
|
245
|
-
#
|
246
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::AuthorizationFailRequest.
|
247
|
-
#
|
248
|
-
# On success, an instance of Authlete::Model::Response::AuthorizationFailResponse is returned.
|
249
|
-
# On error, Authlete::Exception is raised.
|
250
196
|
def authorization_fail(request)
|
251
197
|
hash = call_api_json_service("/api/auth/authorization/fail", to_hash(request))
|
252
198
|
|
253
199
|
Authlete::Model::Response::AuthorizationFailResponse.new(hash)
|
254
200
|
end
|
255
201
|
|
256
|
-
# Call Authlete's /api/auth/token API.
|
257
|
-
#
|
258
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::TokenRequest.
|
259
|
-
#
|
260
|
-
# On success, an instance of Authlete::Model::Response::TokenResponse is returned.
|
261
|
-
# On error, Authlete::Exception is raised.
|
262
202
|
def token(request)
|
263
203
|
hash = call_api_json_service("/api/auth/token", to_hash(request))
|
264
204
|
|
265
205
|
Authlete::Model::Response::TokenResponse.new(hash)
|
266
206
|
end
|
267
207
|
|
268
|
-
# Call Authlete's /api/auth/token/issue API.
|
269
|
-
#
|
270
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::TokenIssueRequest.
|
271
|
-
#
|
272
|
-
# On success, an instance of Authlete::Model::Response::TokenIssueResponse is returned.
|
273
|
-
# On error, Authlete::Exception is raised.
|
274
208
|
def token_issue(request)
|
275
209
|
hash = call_api_json_service("/api/auth/token/issue", to_hash(request))
|
276
210
|
|
277
211
|
Authlete::Model::Response::TokenIssueResponse.new(hash)
|
278
212
|
end
|
279
213
|
|
280
|
-
# Call Authlete's /api/auth/token/fail API.
|
281
|
-
#
|
282
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::TokenFailRequest.
|
283
|
-
#
|
284
|
-
# On success, an instance of Authlete::Model::Response::TokenFailResponse is returned.
|
285
|
-
# On error, Authlete::Exception is raised.
|
286
214
|
def token_fail(request)
|
287
215
|
hash = call_api_json_service("/api/auth/token/fail", to_hash(request))
|
288
216
|
|
289
217
|
Authlete::Model::Response::TokenFailResponse.new(hash)
|
290
218
|
end
|
291
219
|
|
292
|
-
# Call Authlete's /api/service/creatable API.
|
293
|
-
#
|
294
|
-
# On success, an instance of Authlete::Model::Response::ServiceCreatableResponse is returned.
|
295
|
-
# On error, Authlete::Exception is raised.
|
296
|
-
def service_creatable
|
297
|
-
hash = call_api_service_owner(:get, "/api/service/creatable", nil, nil)
|
298
|
-
|
299
|
-
Authlete::Model::Response::ServiceCreatableResponse.new(hash)
|
300
|
-
end
|
301
|
-
|
302
|
-
# Call Authlete's /api/service/create API.
|
303
|
-
#
|
304
|
-
# <tt>service</tt> is the content of a new service to create. The type of
|
305
|
-
# the given object is either <tt>Hash</tt> or any object which
|
306
|
-
# responds to <tt>to_hash</tt>. In normal cases, Authlete::Model::Service
|
307
|
-
# (which responds to <tt>to_hash</tt>) should be used.
|
308
|
-
#
|
309
|
-
# On success, an instance of Authlete::Model::ServiceList is returned.
|
310
|
-
# On error, Authlete::Exception is raised.
|
311
220
|
def service_create(service)
|
312
221
|
hash = call_api_json_service_owner("/api/service/create", to_hash(service))
|
313
222
|
|
314
223
|
Authlete::Model::Service.new(hash)
|
315
224
|
end
|
316
225
|
|
317
|
-
# Call Authlete's /api/service/delete/{api_key} API.
|
318
|
-
#
|
319
|
-
# On error, Authlete::Exception is raised.
|
320
226
|
def service_delete(api_key)
|
321
227
|
call_api_service_owner(:delete, "/api/service/delete/#{api_key}", nil, nil)
|
322
228
|
end
|
323
229
|
|
324
|
-
# Call Authlete's /api/service/get/{api_key} API.
|
325
|
-
#
|
326
|
-
# <tt>api_key</tt> is the API key of the service whose information
|
327
|
-
# you want to get.
|
328
|
-
#
|
329
|
-
# On success, an instance of Authlete::Model::Service is returned.
|
330
|
-
# On error, Authlete::Exception is raised.
|
331
230
|
def service_get(api_key)
|
332
231
|
hash = call_api_service_owner(:get, "/api/service/get/#{api_key}", nil, nil)
|
333
232
|
|
334
233
|
Authlete::Model::Service.new(hash)
|
335
234
|
end
|
336
235
|
|
337
|
-
# Call Authlete's /api/service/get/list API.
|
338
|
-
#
|
339
|
-
# <tt>params</tt> is an optional hash which contains query parameters
|
340
|
-
# for /api/service/get/list API. <tt>:start</tt> and <tt>:end</tt> are
|
341
|
-
# a start index (inclusive) and an end index (exclusive), respectively.
|
342
|
-
#
|
343
|
-
# On success, an instance of Authlete::Model::ServiceList is returned.
|
344
|
-
# On error, Authlete::Exception is raised.
|
345
236
|
def service_get_list(params = nil)
|
346
237
|
hash = call_api_service_owner(:get, "/api/service/get/list#{to_query(params)}", nil, nil)
|
347
238
|
|
348
|
-
Authlete::Model::
|
239
|
+
Authlete::Model::Response::ServiceListResponse.new(hash)
|
349
240
|
end
|
350
241
|
|
351
|
-
# Call Authlete's /api/service/update/{api_key} API.
|
352
|
-
#
|
353
|
-
# <tt>api_key</tt> is the API key of the service whose information
|
354
|
-
# you want to get.
|
355
|
-
#
|
356
|
-
# <tt>service</tt> is the new content of the service. The type of
|
357
|
-
# the given object is either <tt>Hash</tt> or any object which
|
358
|
-
# responds to <tt>to_hash</tt>. In normal cases, Authlete::Model::Service
|
359
|
-
# (which responds to <tt>to_hash</tt>) should be used.
|
360
|
-
#
|
361
|
-
# On success, an instance of Authlete::Model::Service is returned.
|
362
|
-
# On error, Authlete::Exception is raised.
|
363
242
|
def service_update(api_key, service)
|
364
243
|
hash = call_api_json_service_owner("/api/service/update/#{api_key}", to_hash(service))
|
365
244
|
|
366
245
|
Authlete::Model::Service.new(hash)
|
367
246
|
end
|
368
247
|
|
369
|
-
# Call Authlete's /api/serviceowner/get/self API.
|
370
|
-
#
|
371
|
-
# On success, an instance of Authlete::Model::ServiceOwner is returned.
|
372
|
-
# On error, Authlete::Exception is raised.
|
373
248
|
def serviceowner_get_self
|
374
249
|
hash = call_api_service_owner(:get, "/api/serviceowner/get/self", nil, nil)
|
375
250
|
|
376
251
|
Authlete::Model::ServiceOwner.new(hash)
|
377
252
|
end
|
378
253
|
|
379
|
-
# Call Authlete's /api/client/create API.
|
380
|
-
#
|
381
|
-
# <tt>client</tt> is the content of a new service to create. The type of
|
382
|
-
# the given object is either <tt>Hash</tt> or any object which
|
383
|
-
# responds to <tt>to_hash</tt>. In normal cases, Authlete::Model::Client
|
384
|
-
# (which responds to <tt>to_hash</tt>) should be used.
|
385
|
-
#
|
386
|
-
# On success, an instance of Authlete::Model::ClientList is returned.
|
387
|
-
# On error, Authlete::Exception is raised.
|
388
254
|
def client_create(client)
|
389
255
|
hash = call_api_json_service("/api/client/create", to_hash(client))
|
390
256
|
|
391
257
|
Authlete::Model::Client.new(hash)
|
392
258
|
end
|
393
259
|
|
394
|
-
# Call Authlete's /api/client/delete/{clientId} API.
|
395
|
-
#
|
396
|
-
# <tt>client_id</tt> is the client ID of a client.
|
397
|
-
#
|
398
|
-
# On error, Authlete::Exception is raised.
|
399
260
|
def client_delete(client_id)
|
400
261
|
call_api_service(:delete, "/api/client/delete/#{client_id}", nil, nil)
|
401
262
|
end
|
402
263
|
|
403
|
-
# Call Authlete's /api/client/get/{clientId} API.
|
404
|
-
#
|
405
|
-
# <tt>client_id</tt> is the client ID of a client.
|
406
|
-
|
407
|
-
# On success, an instance of Authlete::Model::Client is returned.
|
408
|
-
# On error, Authlete::Exception is raised.
|
409
264
|
def client_get(client_id)
|
410
265
|
hash = call_api_service(:get, "/api/client/get/#{client_id}", nil, nil)
|
411
266
|
|
412
267
|
Authlete::Model::Client.new(hash)
|
413
268
|
end
|
414
269
|
|
415
|
-
# Call Authlete's /api/client/get/list API.
|
416
|
-
#
|
417
|
-
# <tt>params</tt> is an optional hash which contains query parameters
|
418
|
-
# for /api/client/get/list API. <tt>:start</tt> and <tt>:end</tt> are
|
419
|
-
# a start index (inclusive) and an end index (exclusive), respectively.
|
420
|
-
#
|
421
|
-
# On success, an instance of Authlete::Model::ClientList is returned.
|
422
|
-
# On error, Authlete::Exception is raised.
|
423
270
|
def client_get_list(params = nil)
|
424
271
|
hash = call_api_service(:get, "/api/client/get/list#{to_query(params)}", nil, nil)
|
425
272
|
|
426
|
-
Authlete::Model::
|
273
|
+
Authlete::Model::Response::ClientListResponse.new(hash)
|
427
274
|
end
|
428
275
|
|
429
|
-
# Call Authlete's /api/client/update/{clientId} API.
|
430
|
-
#
|
431
|
-
# <tt>client</tt> is the new content of the client. The type of
|
432
|
-
# the given object is either <tt>Hash</tt> or any object which
|
433
|
-
# responds to <tt>to_hash</tt>. In normal cases, Authlete::Model::Client
|
434
|
-
# (which responds to <tt>to_hash</tt>) should be used.
|
435
|
-
#
|
436
|
-
# On success, an instance of Authlete::Model::Client is returned.
|
437
|
-
# On error, Authlete::Exception is raised.
|
438
276
|
def client_update(client)
|
439
|
-
hash = call_api_json_service("/api/client/update/#{client
|
277
|
+
hash = call_api_json_service("/api/client/update/#{client.clientId}", to_hash(client))
|
440
278
|
|
441
279
|
Authlete::Model::Client.new(hash)
|
442
280
|
end
|
443
281
|
|
444
|
-
# Call Authlete's /api/client/secret/refresh/{clientIdentifier} API.
|
445
|
-
#
|
446
|
-
# <tt>clientIdentifier</tt> is the client ID or the client ID alias of a client.
|
447
|
-
#
|
448
|
-
# On success, an instance of Authlete::Model::Response::ClientSecretRefreshResponse is returned.
|
449
|
-
# On error, Authlete::Exception is raised.
|
450
282
|
def refresh_client_secret(client_identifier)
|
451
283
|
hash = call_api_service(:get, "/api/client/secret/refresh/#{client_identifier}", nil, nil)
|
452
284
|
|
453
285
|
Authlete::Model::Response::ClientSecretRefreshResponse.new(hash)
|
454
286
|
end
|
455
287
|
|
456
|
-
# Call Authlete's /api/client/secret/update/{clientIdentifier} API.
|
457
|
-
#
|
458
|
-
# <tt>client_identifier</tt> is the client ID or the client ID alias of a client.
|
459
|
-
# <tt>client_secret</tt> is the client secret of a client.
|
460
|
-
#
|
461
|
-
# On success, an instance of Authlete::Model::Response::ClientSecretUpdateResponse is returned.
|
462
|
-
# On error, Authlete::Exception is raised.
|
463
288
|
def update_client_secret(client_identifier, client_secret)
|
464
|
-
request = Authlete::Model::Request::ClientSecretUpdateRequest.new(:
|
289
|
+
request = Authlete::Model::Request::ClientSecretUpdateRequest.new(clientSecret: client_secret)
|
465
290
|
|
466
291
|
hash = call_api_json_service("/api/client/secret/update/#{client_identifier}", request.to_hash)
|
467
292
|
|
468
293
|
Authlete::Model::Response::ClientSecretUpdateResponse.new(hash)
|
469
294
|
end
|
470
295
|
|
471
|
-
# Call Authlete's /api/client/authorization/get/list API.
|
472
|
-
#
|
473
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::ClientSecretUpdateRequest.
|
474
|
-
#
|
475
|
-
# On success, an instance of Authlete::Model::Response::ClientAuthorizationListResponse is returned.
|
476
|
-
# On error, Authlete::Exception is raised.
|
477
296
|
def get_client_authorization_list(request)
|
478
297
|
hash = call_api_json_service("/api/client/authorization/get/list", to_hash(request))
|
479
298
|
|
480
|
-
Authlete::Model::Response::
|
299
|
+
Authlete::Model::Response::AuthorizedClientListResponse.new(hash)
|
481
300
|
end
|
482
301
|
|
483
|
-
# Call Authlete's /api/client/authorization/update API.
|
484
|
-
#
|
485
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::ClientSecretUpdateRequest.
|
486
|
-
#
|
487
|
-
# On error, Authlete::Exception is raised.
|
488
302
|
def update_client_authorization(client_id, request)
|
489
303
|
call_api_json_service("/api/client/authorization/update/#{client_id}", to_hash(request))
|
490
304
|
end
|
491
305
|
|
492
|
-
# Call Authlete's /api/client/authorization/delete/{clientId} API.
|
493
|
-
#
|
494
|
-
# <tt>client_id</tt> is the client ID of a client.
|
495
|
-
# <tt>subject</tt> is the unique ID of an end user.
|
496
|
-
#
|
497
|
-
# On error, Authlete::Exception is raised.
|
498
306
|
def delete_client_authorization(client_id, subject)
|
499
|
-
request = Authlete::Model::Request::ClientAuthorizationDeleteRequest.new(:
|
307
|
+
request = Authlete::Model::Request::ClientAuthorizationDeleteRequest.new(subject: subject)
|
500
308
|
|
501
309
|
call_api_json_service("/api/client/authorization/delete/#{client_id}", request.to_hash)
|
502
310
|
end
|
503
311
|
|
504
|
-
# Call Authlete's /api/auth/introspection API.
|
505
|
-
#
|
506
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::IntrospectionRequest.
|
507
|
-
#
|
508
|
-
# On success, an instance of Authlete::Model::Response::IntrospectionResponse is returned.
|
509
|
-
# On error, Authlete::Exception is raised.
|
510
312
|
def introspection(request)
|
511
313
|
hash = call_api_json_service('/api/auth/introspection', to_hash(request))
|
512
314
|
|
513
315
|
Authlete::Model::Response::IntrospectionResponse.new(hash)
|
514
316
|
end
|
515
317
|
|
516
|
-
# Call Authlete's /api/auth/introspection/standard API.
|
517
|
-
#
|
518
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::StandardIntrospectionRequest.
|
519
|
-
#
|
520
|
-
# On success, an instance of Authlete::Model::Response::StandardIntrospectionResponse is returned.
|
521
|
-
# On error, Authlete::Exception is raised.
|
522
318
|
def standard_introspection(request)
|
523
319
|
hash = call_api_json_service('/api/auth/introspection/standard', to_hash(request))
|
524
320
|
|
525
321
|
Authlete::Model::Response::StandardIntrospectionResponse.new(hash)
|
526
322
|
end
|
527
323
|
|
528
|
-
# Call Authlete's /api/auth/revocation API.
|
529
|
-
#
|
530
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::RevocationRequest.
|
531
|
-
#
|
532
|
-
# On success, an instance of Authlete::Model::Response::RevocationResponse is returned.
|
533
|
-
# On error, Authlete::Exception is raised.
|
534
324
|
def revocation(request)
|
535
325
|
hash = call_api_json_service("/api/auth/revocation", to_hash(request))
|
536
326
|
|
537
327
|
Authlete::Model::Response::RevocationResponse.new(hash)
|
538
328
|
end
|
539
329
|
|
540
|
-
# Call Authlete's /api/auth/userinfo API.
|
541
|
-
#
|
542
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::UserInfoRequest.
|
543
|
-
#
|
544
|
-
# On success, an instance of Authlete::Model::Response::UserInfoResponse is returned.
|
545
|
-
# On error, Authlete::Exception is raised.
|
546
330
|
def user_info(request)
|
547
331
|
hash = call_api_json_service("/api/auth/userinfo", to_hash(request))
|
548
332
|
|
549
333
|
Authlete::Model::Response::UserInfoResponse.new(hash)
|
550
334
|
end
|
551
335
|
|
552
|
-
# Call Authlete's /api/auth/userinfo/issue API.
|
553
|
-
#
|
554
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::UserInfoIssueRequest.
|
555
|
-
#
|
556
|
-
# On success, an instance of Authlete::Model::Response::UserInfoIssueResponse is returned.
|
557
|
-
# On error, Authlete::Exception is raised.
|
558
336
|
def user_info_issue(request)
|
559
337
|
hash = call_api_json_service("/api/auth/userinfo/issue", to_hash(request))
|
560
338
|
|
561
339
|
Authlete::Model::Response::UserInfoIssueResponse.new(hash)
|
562
340
|
end
|
563
341
|
|
564
|
-
# Call Authlete's /api/service/jwks/get API.
|
565
|
-
#
|
566
|
-
# <tt>params</tt> is an optional hash which contains query parameters
|
567
|
-
# for /api/service/jwks/get API. The hash can contain the following parameters.
|
568
|
-
#
|
569
|
-
# <tt>:includePrivateKeys</tt>
|
570
|
-
# This boolean value indicates whether the response should include the
|
571
|
-
# private keys associated with the service or not. If "true", the private
|
572
|
-
# keys are included in the response. The default value is "false".
|
573
|
-
#
|
574
|
-
# <tt>:pretty</tt>
|
575
|
-
# This boolean value indicates whether the JSON in the response should
|
576
|
-
# be formatted or not. If true, the JSON in the response is pretty-formatted.
|
577
|
-
# The default value is false.
|
578
|
-
#
|
579
|
-
# On success, a JWK Set for a service is returned.
|
580
|
-
# On error, Authlete::Exception is raised.
|
581
342
|
def get_service_jwks(params = nil)
|
582
343
|
call_api_service(:get, "/api/service/jwks/get#{to_query(params)}", nil, nil)
|
583
344
|
end
|
584
345
|
|
585
|
-
# Call Authlete's /api/service/configuration API.
|
586
|
-
#
|
587
|
-
# <tt>params</tt> is an optional hash which contains query parameters
|
588
|
-
# for /api/service/configuration API. The hash can contain the following
|
589
|
-
# parameter.
|
590
|
-
#
|
591
|
-
# <tt>:includePrivateKeys</tt>
|
592
|
-
# This boolean value indicates whether the response should include the
|
593
|
-
# private keys associated with the service or not. If "true", the private
|
594
|
-
# keys are included in the response. The default value is "false".
|
595
|
-
#
|
596
|
-
# On success, configuration information of a service is returned.
|
597
|
-
# On error, Authlete::Exception is raised.
|
598
346
|
def get_service_configuration(params = nil)
|
599
347
|
call_api_service(:get, "/api/service/configuration#{to_query(params)}", nil, nil)
|
600
348
|
end
|
601
349
|
|
602
|
-
# Call Authlete's /api/auth/token/create API.
|
603
|
-
#
|
604
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::TokenCreateRequest.
|
605
|
-
#
|
606
|
-
# On success, an instance of Authlete::Model::Response::TokenCreateResponse is returned.
|
607
|
-
# On error, Authlete::Exception is raised.
|
608
350
|
def token_create(request)
|
609
351
|
hash = call_api_json_service("/api/auth/token/create", to_hash(request))
|
610
352
|
|
611
353
|
Authlete::Model::Response::TokenCreateResponse.new(hash)
|
612
354
|
end
|
613
355
|
|
614
|
-
# Call Authlete's /api/auth/token/update API.
|
615
|
-
#
|
616
|
-
# <tt>request</tt> is an instance of Authlete::Model::Request::TokenUpdateRequest.
|
617
|
-
#
|
618
|
-
# On success, an instance of Authlete::Model::Response::TokenUpdateResponse is returned.
|
619
|
-
# On error, Authlete::Exception is raised.
|
620
356
|
def token_update(request)
|
621
357
|
hash = call_api_json_service("/api/auth/token/update", to_hash(request))
|
622
358
|
|
623
359
|
Authlete::Model::Response::TokenUpdateResponse.new(hash)
|
624
360
|
end
|
625
361
|
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
# On error, Authlete::Exception is raised.
|
362
|
+
def get_token_list(params = nil)
|
363
|
+
hash = call_api_service(:get, "/api/auth/token/get/list#{to_query(params)}", nil, nil)
|
364
|
+
|
365
|
+
Authlete::Model::Response::TokenListResponse.new(hash)
|
366
|
+
end
|
367
|
+
|
633
368
|
def get_granted_scopes(client_id, subject)
|
634
|
-
request = Authlete::Model::Request::GrantedScopesRequest.new(:
|
369
|
+
request = Authlete::Model::Request::GrantedScopesRequest.new(subject: subject)
|
635
370
|
|
636
|
-
hash = call_api_json_service("/api/client/granted_scopes/get/#{client_id}", request
|
371
|
+
hash = call_api_json_service("/api/client/granted_scopes/get/#{client_id}", to_hash(request))
|
637
372
|
|
638
373
|
Authlete::Model::Response::GrantedScopesGetResponse.new(hash)
|
639
374
|
end
|
640
375
|
|
641
|
-
# Call Authlete's /api/client/granted_scopes/delete/{clientId} API.
|
642
|
-
#
|
643
|
-
# <tt>client_id</tt> is the client ID of a client.
|
644
|
-
# <tt>subject</tt> is the unique ID of an end user.
|
645
|
-
#
|
646
|
-
# On error, Authlete::Exception is raised.
|
647
376
|
def delete_granted_scopes(client_id, subject)
|
648
|
-
request = Authlete::Model::Request::GrantedScopesRequest.new(:
|
377
|
+
request = Authlete::Model::Request::GrantedScopesRequest.new(subject: subject)
|
378
|
+
|
379
|
+
call_api_json_service("/api/client/granted_scopes/delete/#{client_id}", to_hash(request))
|
380
|
+
end
|
381
|
+
|
382
|
+
def get_requestable_scopes(client_id)
|
383
|
+
hash = call_api_service(:get, "/api/client/extension/requestable_scopes/get/#{client_id}", nil, nil)
|
384
|
+
|
385
|
+
extract_requestable_scopes(hash)
|
386
|
+
end
|
387
|
+
|
388
|
+
def set_requestable_scopes(client_id, scopes)
|
389
|
+
hash = call_api_json_service("/api/client/extension/requestable_scopes/update/#{client_id}", { requestableScopes: scopes })
|
390
|
+
|
391
|
+
extract_requestable_scopes(hash)
|
392
|
+
end
|
393
|
+
|
394
|
+
def delete_requestable_scopes(client_id)
|
395
|
+
call_api_service(:delete, "/api/client/extension/requestable_scopes/delete/#{client_id}", nil, nil)
|
396
|
+
end
|
397
|
+
|
398
|
+
def dynamic_client_register(request)
|
399
|
+
hash = call_api_json_service("/api/client/registration", to_hash(request))
|
400
|
+
|
401
|
+
Authlete::Model::Response::ClientRegistrationResponse.new(hash)
|
402
|
+
end
|
403
|
+
|
404
|
+
def dynamic_client_get(request)
|
405
|
+
hash = call_api_json_service("/api/client/registration/get", to_hash(request))
|
406
|
+
|
407
|
+
Authlete::Model::Response::ClientRegistrationResponse.new(hash)
|
408
|
+
end
|
409
|
+
|
410
|
+
def dynamic_client_update(request)
|
411
|
+
hash = call_api_json_service("/api/client/registration/update", to_hash(request))
|
412
|
+
|
413
|
+
Authlete::Model::Response::ClientRegistrationResponse.new(hash)
|
414
|
+
end
|
415
|
+
|
416
|
+
def dynamic_client_delete(request)
|
417
|
+
hash = call_api_json_service("/api/client/registration/delete", to_hash(request))
|
649
418
|
|
650
|
-
|
419
|
+
Authlete::Model::Response::ClientRegistrationResponse.new(hash)
|
420
|
+
end
|
421
|
+
|
422
|
+
def backchannel_authentication(request)
|
423
|
+
hash = call_api_json_service("/api/backchannel/authentication", to_hash(request))
|
424
|
+
|
425
|
+
Authlete::Model::Response::BackchannelAuthenticationResponse.new(hash)
|
426
|
+
end
|
427
|
+
|
428
|
+
def backchannel_authentication_issue(request)
|
429
|
+
hash = call_api_json_service("/api/backchannel/authentication/issue", to_hash(request))
|
430
|
+
|
431
|
+
Authlete::Model::Response::BackchannelAuthenticationIssueResponse.new(hash)
|
432
|
+
end
|
433
|
+
|
434
|
+
def backchannel_authentication_fail(request)
|
435
|
+
hash = call_api_json_service("/api/backchannel/authentication/fail", to_hash(request))
|
436
|
+
|
437
|
+
Authlete::Model::Response::BackchannelAuthenticationFailResponse.new(hash)
|
438
|
+
end
|
439
|
+
|
440
|
+
def backchannel_authentication_complete(request)
|
441
|
+
hash = call_api_json_service("/api/backchannel/authentication/complete", to_hash(request))
|
442
|
+
|
443
|
+
Authlete::Model::Response::BackchannelAuthenticationCompleteResponse.new(hash)
|
444
|
+
end
|
445
|
+
|
446
|
+
def device_authorization(request)
|
447
|
+
hash = call_api_json_service("/api/device/authorization", to_hash(request))
|
448
|
+
|
449
|
+
Authlete::Model::Response::DeviceAuthorizationResponse.new(hash)
|
450
|
+
end
|
451
|
+
|
452
|
+
def device_complete(request)
|
453
|
+
hash = call_api_json_service("/api/device/complete", to_hash(request))
|
454
|
+
|
455
|
+
Authlete::Model::Response::DeviceCompleteResponse.new(hash)
|
456
|
+
end
|
457
|
+
|
458
|
+
def device_verification(request)
|
459
|
+
hash = call_api_json_service("/api/device/verification", to_hash(request))
|
460
|
+
|
461
|
+
Authlete::Model::Response::DeviceVerificationResponse.new(hash)
|
462
|
+
end
|
463
|
+
|
464
|
+
def push_authorization_request(request)
|
465
|
+
hash = call_api_json_service("/api/pushed_auth_req", to_hash(request))
|
466
|
+
|
467
|
+
Authlete::Model::Response::PushedAuthReqResponse.new(hash)
|
651
468
|
end
|
652
469
|
|
653
470
|
# Ensure that the request contains a valid access token.
|
@@ -680,16 +497,16 @@ module Authlete
|
|
680
497
|
if access_token.nil?
|
681
498
|
# The request does not contain a valid access token.
|
682
499
|
return Authlete::Model::Response::IntrospectionResponse.new(
|
683
|
-
:
|
684
|
-
:
|
500
|
+
action: 'BAD_REQUEST',
|
501
|
+
responseContent: 'Bearer error="invalid_token",error_description="The request does not contain a valid access token."'
|
685
502
|
)
|
686
503
|
end
|
687
504
|
|
688
505
|
# Create a request for Authlete's /api/auth/introspection API.
|
689
506
|
request = Authlete::Model::Request::IntrospectionRequest.new(
|
690
|
-
:
|
691
|
-
:
|
692
|
-
:
|
507
|
+
token: access_token,
|
508
|
+
scopes: scopes,
|
509
|
+
subject: subject
|
693
510
|
)
|
694
511
|
|
695
512
|
begin
|
@@ -704,13 +521,21 @@ module Authlete
|
|
704
521
|
|
705
522
|
# Failed to introspect the access token.
|
706
523
|
return Authlete::Model::Response::IntrospectionResponse.new(
|
707
|
-
:
|
708
|
-
:
|
524
|
+
action: 'INTERNAL_SERVER_ERROR',
|
525
|
+
responseContent: "Bearer error=\"server_error\",error_description=\"#{message}\""
|
709
526
|
)
|
710
527
|
end
|
711
528
|
|
712
529
|
# Return the response from Authlete's /api/auth/introspection API.
|
713
530
|
result
|
714
531
|
end
|
532
|
+
|
533
|
+
def emit_rack_error_message(request, message)
|
534
|
+
begin
|
535
|
+
# Logging if possible.
|
536
|
+
request.env['rack.errors'].write("ERROR: #{message}\n")
|
537
|
+
rescue => e
|
538
|
+
end
|
539
|
+
end
|
715
540
|
end
|
716
|
-
end
|
541
|
+
end
|