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.
- checksums.yaml +4 -4
- data/lib/authlete.rb +24 -1
- data/lib/authlete/api.rb +298 -146
- data/lib/authlete/authentication-server.rb +1 -1
- data/lib/authlete/exception.rb +6 -3
- data/lib/authlete/model/client-extension.rb +135 -135
- data/lib/authlete/model/client-list.rb +128 -128
- data/lib/authlete/model/client.rb +468 -468
- data/lib/authlete/model/hashable.rb +1 -1
- data/lib/authlete/model/pair.rb +102 -102
- data/lib/authlete/model/property.rb +116 -0
- data/lib/authlete/model/request/authentication-callback-request.rb +90 -90
- data/lib/authlete/model/request/authorization-fail-request.rb +107 -104
- data/lib/authlete/model/request/authorization-issue-request.rb +167 -133
- data/lib/authlete/model/request/authorization-request.rb +101 -101
- data/lib/authlete/model/request/client-authorization-delete-request.rb +123 -0
- data/lib/authlete/model/request/client-authorization-get-list-request.rb +123 -0
- data/lib/authlete/model/request/client-authorization-update-request.rb +118 -0
- data/lib/authlete/model/request/client-secret-update-request.rb +121 -0
- data/lib/authlete/model/request/developer-authentication-callback-request.rb +84 -84
- data/lib/authlete/model/request/granted-scopes-request.rb +103 -0
- data/lib/authlete/model/request/introspection-request.rb +117 -39
- data/lib/authlete/model/request/revocation-request.rb +125 -0
- data/lib/authlete/model/request/standard-introspection-request.rb +102 -0
- data/lib/authlete/model/request/token-create-request.rb +250 -0
- data/lib/authlete/model/request/token-fail-request.rb +104 -101
- data/lib/authlete/model/request/token-issue-request.rb +116 -101
- data/lib/authlete/model/request/token-request.rb +127 -121
- data/lib/authlete/model/request/token-update-request.rb +165 -0
- data/lib/authlete/model/request/user-info-issue-request.rb +113 -0
- data/lib/authlete/model/request/user-info-request.rb +102 -0
- data/lib/authlete/model/response/authentication-callback-response.rb +53 -53
- data/lib/authlete/model/response/authorization-fail-response.rb +48 -48
- data/lib/authlete/model/response/authorization-issue-response.rb +85 -48
- data/lib/authlete/model/response/authorization-response.rb +177 -164
- data/lib/authlete/model/response/client-authorization-get-list-response.rb +60 -0
- data/lib/authlete/model/response/client-secret-refresh-response.rb +48 -0
- data/lib/authlete/model/response/client-secret-update-response.rb +48 -0
- data/lib/authlete/model/response/developer-authentication-callback-response.rb +55 -55
- data/lib/authlete/model/response/granted-scopes-get-response.rb +63 -0
- data/lib/authlete/model/response/introspection-response.rb +163 -132
- data/lib/authlete/model/response/revocation-response.rb +49 -0
- data/lib/authlete/model/response/service-creatable-response.rb +50 -50
- data/lib/authlete/model/response/standard-introspection-response.rb +49 -0
- data/lib/authlete/model/response/token-create-response.rb +100 -0
- data/lib/authlete/model/response/token-fail-response.rb +49 -49
- data/lib/authlete/model/response/token-issue-response.rb +138 -49
- data/lib/authlete/model/response/token-response.rb +168 -70
- data/lib/authlete/model/response/token-update-response.rb +62 -0
- data/lib/authlete/model/response/user-info-issue-response.rb +47 -0
- data/lib/authlete/model/response/user-info-response.rb +85 -0
- data/lib/authlete/model/result.rb +44 -44
- data/lib/authlete/model/scope.rb +1 -1
- data/lib/authlete/model/service-list.rb +1 -1
- data/lib/authlete/model/service-owner.rb +1 -1
- data/lib/authlete/model/service.rb +4 -2
- data/lib/authlete/model/sns-credentials.rb +1 -1
- data/lib/authlete/model/tagged-value.rb +97 -97
- data/lib/authlete/utility.rb +1 -1
- data/lib/authlete/version.rb +2 -2
- metadata +24 -2
@@ -0,0 +1,165 @@
|
|
1
|
+
# :nodoc:
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require 'set'
|
19
|
+
|
20
|
+
|
21
|
+
module Authlete
|
22
|
+
module Model
|
23
|
+
module Request
|
24
|
+
# == Authlete::Model::Request::TokenUpdateRequest class
|
25
|
+
#
|
26
|
+
# This class represents a request to Authlete's /api/auth/token/update API.
|
27
|
+
class TokenUpdateRequest < Authlete::Model::Hashable
|
28
|
+
# An existing access token. (String)
|
29
|
+
attr_accessor :accessToken
|
30
|
+
alias_method :access_token, :accessToken
|
31
|
+
alias_method :access_token=, :accessToken=
|
32
|
+
|
33
|
+
#A new date at which the access token will expire in milliseconds
|
34
|
+
# since the Unix epoch (1970-01-01). If the accessTokenExpiresAt request
|
35
|
+
# parameter is not included in a request or its value is 0 (or negative),
|
36
|
+
# the expiration date of the access token is not changed. (Integer)
|
37
|
+
attr_accessor :accessTokenExpiresAt
|
38
|
+
alias_method :access_token_expires_at, :accessTokenExpiresAt
|
39
|
+
alias_method :access_token_expires_at=, :accessTokenExpiresAt=
|
40
|
+
|
41
|
+
# A new set of scopes assigned to the access token. Scopes that are not
|
42
|
+
# supported by the service and those that the client application associated
|
43
|
+
# with the access token is not allowed to request are ignored on the
|
44
|
+
# server side. If the scopes request parameter is not included in a
|
45
|
+
# request or its value is nil, the scopes of the access token are not
|
46
|
+
# changed. (String array)
|
47
|
+
attr_accessor :scopes
|
48
|
+
|
49
|
+
# A new set of properties assigned to the access token. If the properties
|
50
|
+
# request parameter is not included in a request or its value is nil,
|
51
|
+
# the properties of the access token are not changed.
|
52
|
+
# (Property array)
|
53
|
+
attr_accessor :properties
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
# Integer attributes.
|
58
|
+
INTEGER_ATTRIBUTES = ::Set.new([ :accessTokenExpiresAt ])
|
59
|
+
|
60
|
+
# String attributes.
|
61
|
+
STRING_ATTRIBUTES = ::Set.new([ :accessToken ])
|
62
|
+
|
63
|
+
# String array attributes.
|
64
|
+
STRING_ARRAY_ATTRIBUTES = ::Set.new([ :scopes ])
|
65
|
+
|
66
|
+
# Mapping from snake cases to camel cases.
|
67
|
+
SNAKE_TO_CAMEL = {
|
68
|
+
:access_token => :accessToken,
|
69
|
+
:access_expires_at => :accessTokenExpiresAt
|
70
|
+
}
|
71
|
+
|
72
|
+
# The constructor which takes a hash that represents a JSON request to
|
73
|
+
# Authlete's /api/auth/token/update API.
|
74
|
+
def initialize(hash = nil)
|
75
|
+
# Set default values to integer attributes.
|
76
|
+
INTEGER_ATTRIBUTES.each do |attr|
|
77
|
+
send("#{attr}=", 0)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Set default values to string attributes.
|
81
|
+
STRING_ATTRIBUTES.each do |attr|
|
82
|
+
send("#{attr}=", nil)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Set default values to string array attributes.
|
86
|
+
STRING_ARRAY_ATTRIBUTES.each do |attr|
|
87
|
+
send("#{attr}=", nil)
|
88
|
+
end
|
89
|
+
|
90
|
+
@properties = nil
|
91
|
+
|
92
|
+
# Set attribute values using the given hash.
|
93
|
+
authlete_model_update(hash)
|
94
|
+
end
|
95
|
+
|
96
|
+
def authlete_model_convert_key(key)
|
97
|
+
key = key.to_sym
|
98
|
+
|
99
|
+
# Convert snakecase to camelcase, if necessary.
|
100
|
+
if SNAKE_TO_CAMEL.has_key?(key)
|
101
|
+
key = SNAKE_TO_CAMEL[key]
|
102
|
+
end
|
103
|
+
|
104
|
+
key
|
105
|
+
end
|
106
|
+
|
107
|
+
def authlete_model_simple_attribute?(key)
|
108
|
+
INTEGER_ATTRIBUTES.include?(key) or
|
109
|
+
STRING_ATTRIBUTES.include?(key) or
|
110
|
+
STRING_ARRAY_ATTRIBUTES.include?(key)
|
111
|
+
end
|
112
|
+
|
113
|
+
def authlete_model_update(hash)
|
114
|
+
return if hash.nil?
|
115
|
+
|
116
|
+
hash.each do |key, value|
|
117
|
+
key = authlete_model_convert_key(key)
|
118
|
+
|
119
|
+
if authlete_model_simple_attribute?(key)
|
120
|
+
send("#{key}=", value)
|
121
|
+
elsif key == :properties
|
122
|
+
@properties = get_parsed_array(value) do |element|
|
123
|
+
Authlete::Model::Property.parse(element)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
self
|
129
|
+
end
|
130
|
+
|
131
|
+
public
|
132
|
+
|
133
|
+
# Construct an instance from the given hash.
|
134
|
+
#
|
135
|
+
# If the given argument is nil or is not a Hash, nil is returned.
|
136
|
+
# Otherwise, TokenUpdateRequest.new(hash) is returned.
|
137
|
+
def self.parse(hash)
|
138
|
+
if hash.nil? or (hash.kind_of?(Hash) == false)
|
139
|
+
return nil
|
140
|
+
end
|
141
|
+
|
142
|
+
return TokenUpdateRequest.new(hash)
|
143
|
+
end
|
144
|
+
|
145
|
+
# Convert this object into a hash.
|
146
|
+
def to_hash
|
147
|
+
hash = {}
|
148
|
+
|
149
|
+
instance_variables.each do |var|
|
150
|
+
key = var.to_s.delete("@").to_sym
|
151
|
+
val = instance_variable_get(var)
|
152
|
+
|
153
|
+
if authlete_model_simple_attribute?(key) or val.nil?
|
154
|
+
hash[key] = val
|
155
|
+
elsif key == :properties
|
156
|
+
hash[key] = val.map { |element| element.to_hash }
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
hash
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# :nodoc:
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require 'set'
|
19
|
+
|
20
|
+
|
21
|
+
module Authlete
|
22
|
+
module Model
|
23
|
+
module Request
|
24
|
+
# == Authlete::Model::Request::UserInfoRequest class
|
25
|
+
#
|
26
|
+
# This class represents a request to Authlete's /api/auth/userinfo/issue API.
|
27
|
+
class UserInfoIssueRequest < Authlete::Model::Hashable
|
28
|
+
# An access token to introspect. (String)
|
29
|
+
attr_accessor :token
|
30
|
+
|
31
|
+
# Claims in JSON format.
|
32
|
+
# As for the format, see "OpenID Connect Core 1.0, 5.1. Standard Claims".
|
33
|
+
# (String)
|
34
|
+
attr_accessor :claims
|
35
|
+
|
36
|
+
# The value of the "sub" claim. If the value of this request parameter
|
37
|
+
# is not empty, it is used as the value of the "sub" claim. Otherwise,
|
38
|
+
# the value of the subject associated with the access token is used.
|
39
|
+
# (String)
|
40
|
+
attr_accessor :sub
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
# String attributes.
|
45
|
+
STRING_ATTRIBUTES = ::Set.new([ :token, :claims, :sub ])
|
46
|
+
|
47
|
+
# The constructor which takes a hash that represents a JSON request to
|
48
|
+
# Authlete's /api/auth/userinfo/issue API.
|
49
|
+
def initialize(hash = nil)
|
50
|
+
# Set default values to string attributes.
|
51
|
+
STRING_ATTRIBUTES.each do |attr|
|
52
|
+
send("#{attr}=", nil)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Set attribute values using the given hash.
|
56
|
+
authlete_model_update(hash)
|
57
|
+
end
|
58
|
+
|
59
|
+
def authlete_model_convert_key(key)
|
60
|
+
key.to_sym
|
61
|
+
end
|
62
|
+
|
63
|
+
def authlete_model_simple_attribute?(key)
|
64
|
+
STRING_ATTRIBUTES.include?(key)
|
65
|
+
end
|
66
|
+
|
67
|
+
def authlete_model_update(hash)
|
68
|
+
return if hash.nil?
|
69
|
+
|
70
|
+
hash.each do |key, value|
|
71
|
+
key = authlete_model_convert_key(key)
|
72
|
+
|
73
|
+
if authlete_model_simple_attribute?(key)
|
74
|
+
send("#{key}=", value)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
self
|
79
|
+
end
|
80
|
+
|
81
|
+
public
|
82
|
+
|
83
|
+
# Construct an instance from the given hash.
|
84
|
+
#
|
85
|
+
# If the given argument is nil or is not a Hash, nil is returned.
|
86
|
+
# Otherwise, UserInfoIssueRequest.new(hash) is returned.
|
87
|
+
def self.parse(hash)
|
88
|
+
if hash.nil? or (hash.kind_of?(Hash) == false)
|
89
|
+
return nil
|
90
|
+
end
|
91
|
+
|
92
|
+
return UserInfoIssueRequest.new(hash)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Convert this object into a hash.
|
96
|
+
def to_hash
|
97
|
+
hash = {}
|
98
|
+
|
99
|
+
instance_variables.each do |var|
|
100
|
+
key = var.to_s.delete("@").to_sym
|
101
|
+
val = instance_variable_get(var)
|
102
|
+
|
103
|
+
if authlete_model_simple_attribute?(key) or val.nil?
|
104
|
+
hash[key] = val
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
hash
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# :nodoc:
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require 'set'
|
19
|
+
|
20
|
+
|
21
|
+
module Authlete
|
22
|
+
module Model
|
23
|
+
module Request
|
24
|
+
# == Authlete::Model::Request::UserInfoRequest class
|
25
|
+
#
|
26
|
+
# This class represents a request to Authlete's /api/auth/userinfo API.
|
27
|
+
class UserInfoRequest < Authlete::Model::Hashable
|
28
|
+
# An access token to introspect. (String)
|
29
|
+
attr_accessor :token
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
# String attributes.
|
34
|
+
STRING_ATTRIBUTES = ::Set.new([ :token ])
|
35
|
+
|
36
|
+
# The constructor which takes a hash that represents a JSON request to
|
37
|
+
# Authlete's /api/auth/userinfo API.
|
38
|
+
def initialize(hash = nil)
|
39
|
+
# Set default values to string attributes.
|
40
|
+
STRING_ATTRIBUTES.each do |attr|
|
41
|
+
send("#{attr}=", nil)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Set attribute values using the given hash.
|
45
|
+
authlete_model_update(hash)
|
46
|
+
end
|
47
|
+
|
48
|
+
def authlete_model_convert_key(key)
|
49
|
+
key.to_sym
|
50
|
+
end
|
51
|
+
|
52
|
+
def authlete_model_simple_attribute?(key)
|
53
|
+
STRING_ATTRIBUTES.include?(key)
|
54
|
+
end
|
55
|
+
|
56
|
+
def authlete_model_update(hash)
|
57
|
+
return if hash.nil?
|
58
|
+
|
59
|
+
hash.each do |key, value|
|
60
|
+
key = authlete_model_convert_key(key)
|
61
|
+
|
62
|
+
if authlete_model_simple_attribute?(key)
|
63
|
+
send("#{key}=", value)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
self
|
68
|
+
end
|
69
|
+
|
70
|
+
public
|
71
|
+
|
72
|
+
# Construct an instance from the given hash.
|
73
|
+
#
|
74
|
+
# If the given argument is nil or is not a Hash, nil is returned.
|
75
|
+
# Otherwise, UserInfoRequest.new(hash) is returned.
|
76
|
+
def self.parse(hash)
|
77
|
+
if hash.nil? or (hash.kind_of?(Hash) == false)
|
78
|
+
return nil
|
79
|
+
end
|
80
|
+
|
81
|
+
return UserInfoRequest.new(hash)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Convert this object into a hash.
|
85
|
+
def to_hash
|
86
|
+
hash = {}
|
87
|
+
|
88
|
+
instance_variables.each do |var|
|
89
|
+
key = var.to_s.delete("@").to_sym
|
90
|
+
val = instance_variable_get(var)
|
91
|
+
|
92
|
+
if authlete_model_simple_attribute?(key) or val.nil?
|
93
|
+
hash[key] = val
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
hash
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -1,54 +1,54 @@
|
|
1
|
-
# :nodoc:
|
2
|
-
#
|
3
|
-
# Copyright (C) 2014-
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
|
18
|
-
module Authlete
|
19
|
-
module Model
|
20
|
-
module Response
|
21
|
-
# == Authlete::Model::Response::AuthenticationCallbackResponse class
|
22
|
-
#
|
23
|
-
# This class represents a response from an authentication callback endpoint.
|
24
|
-
class AuthenticationCallbackResponse
|
25
|
-
include Authlete::Utility
|
26
|
-
# True when the end-user has been authenticated (= is a valid user).
|
27
|
-
attr_accessor :authenticated
|
28
|
-
|
29
|
-
# The unique identifier of the end-user.
|
30
|
-
attr_accessor :subject
|
31
|
-
|
32
|
-
# Pieces of information about the end-user in JSON format.
|
33
|
-
attr_accessor :claims
|
34
|
-
|
35
|
-
# The constructor which takes a hash that represents a JSON response
|
36
|
-
# from an authentication callback endpoint.
|
37
|
-
def initialize(hash = {})
|
38
|
-
@authenticated = extract_boolean_value(hash, :authenticated)
|
39
|
-
@subject = extract_value(hash, :subject)
|
40
|
-
@claims = extract_value(hash, :claims)
|
41
|
-
end
|
42
|
-
|
43
|
-
# Generate an array which is usable as a Rack response from this instance.
|
44
|
-
def to_rack_response
|
45
|
-
to_rack_response_json(200, JSON.generate(
|
46
|
-
:authenticated => @authenticated,
|
47
|
-
:subject => @subject,
|
48
|
-
:claims => @claims
|
49
|
-
))
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
1
|
+
# :nodoc:
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
module Authlete
|
19
|
+
module Model
|
20
|
+
module Response
|
21
|
+
# == Authlete::Model::Response::AuthenticationCallbackResponse class
|
22
|
+
#
|
23
|
+
# This class represents a response from an authentication callback endpoint.
|
24
|
+
class AuthenticationCallbackResponse
|
25
|
+
include Authlete::Utility
|
26
|
+
# True when the end-user has been authenticated (= is a valid user).
|
27
|
+
attr_accessor :authenticated
|
28
|
+
|
29
|
+
# The unique identifier of the end-user.
|
30
|
+
attr_accessor :subject
|
31
|
+
|
32
|
+
# Pieces of information about the end-user in JSON format.
|
33
|
+
attr_accessor :claims
|
34
|
+
|
35
|
+
# The constructor which takes a hash that represents a JSON response
|
36
|
+
# from an authentication callback endpoint.
|
37
|
+
def initialize(hash = {})
|
38
|
+
@authenticated = extract_boolean_value(hash, :authenticated)
|
39
|
+
@subject = extract_value(hash, :subject)
|
40
|
+
@claims = extract_value(hash, :claims)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Generate an array which is usable as a Rack response from this instance.
|
44
|
+
def to_rack_response
|
45
|
+
to_rack_response_json(200, JSON.generate(
|
46
|
+
:authenticated => @authenticated,
|
47
|
+
:subject => @subject,
|
48
|
+
:claims => @claims
|
49
|
+
))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
54
|
end
|