doorkeeper-openid_connect 1.7.4 → 1.8.1
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/CHANGELOG.md +36 -0
- data/README.md +31 -0
- data/app/controllers/doorkeeper/openid_connect/discovery_controller.rb +39 -10
- data/app/controllers/doorkeeper/openid_connect/userinfo_controller.rb +1 -1
- data/lib/doorkeeper/oauth/id_token_response.rb +5 -7
- data/lib/doorkeeper/oauth/id_token_token_response.rb +1 -3
- data/lib/doorkeeper/openid_connect/config.rb +4 -0
- data/lib/doorkeeper/openid_connect/helpers/controller.rb +7 -6
- data/lib/doorkeeper/openid_connect/id_token.rb +5 -1
- data/lib/doorkeeper/openid_connect/oauth/password_access_token_request.rb +10 -3
- data/lib/doorkeeper/openid_connect/oauth/pre_authorization.rb +9 -16
- data/lib/doorkeeper/openid_connect/orm/active_record/request.rb +1 -1
- data/lib/doorkeeper/openid_connect/rails/routes.rb +1 -0
- data/lib/doorkeeper/openid_connect/version.rb +1 -1
- data/lib/doorkeeper/openid_connect.rb +15 -21
- data/lib/generators/doorkeeper/openid_connect/templates/initializer.rb +3 -1
- metadata +8 -10
- data/lib/doorkeeper/openid_connect/response_mode.rb +0 -30
- data/lib/doorkeeper/openid_connect/response_types_config.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09f27d32ffb416432a70412926bdd053ef3c715615d503ea468fe00471e00dc0'
|
4
|
+
data.tar.gz: 36c769e0736aba2a90576b9837201b692205bbd4506db709b70e9cd544b7e15f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d9a70bf130b96e1f1d51d28781c7d2bab443876c7d2a25f8fa3ab674b5bcc406342e7787f8681fa6ec81ea8223011f48600e2c9b257c774766c522a8e74c1b9
|
7
|
+
data.tar.gz: 063e9d61009275044b6b6ff98bfd068a7873d7986e407616c5363aedba127989f48da9ff1fe6489895d6ea62b3db5ed69185557b505d02391dc6f935c3dbbc7b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,41 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
- [#] Add here
|
4
|
+
|
5
|
+
## v1.8.1 (2022-02-09)
|
6
|
+
|
7
|
+
- [#153] Fix ArgumentError caused by client credential validation introduced in Doorkeeper 5.5.1 (thanks to @CircumnavigatingFlatEarther)
|
8
|
+
- [#161] Fix .well-known/openid-connect issuer (respond to block if provided) (thanks to @fkowal).
|
9
|
+
- [#152] Expose oauth-authorization-server in routes (thanks to @mitar)
|
10
|
+
|
11
|
+
## v1.8.0 (2021-05-11)
|
12
|
+
|
13
|
+
No changes from v1.8.0-rc1.
|
14
|
+
|
15
|
+
## v1.8.0-rc1 (2021-04-20)
|
16
|
+
|
17
|
+
### Upgrading
|
18
|
+
|
19
|
+
This gem now requires Doorkeeper 5.5 and Ruby 2.5.
|
20
|
+
|
21
|
+
### Changes
|
22
|
+
|
23
|
+
- [#138] Support form_post response mode (thanks to @linhdangduy)
|
24
|
+
- [#144] Support block syntax for `issuer` configuration (thanks to @maxxsnake)
|
25
|
+
- [#145] Register token flows with the strategy instead of the token class (thanks to @paukul)
|
26
|
+
|
27
|
+
## v1.7.5 (2020-12-15)
|
28
|
+
|
29
|
+
### Changes
|
30
|
+
|
31
|
+
- [#126] Add discovery_url_options option for discovery endpoints URL generation (thanks to @phlegx)
|
32
|
+
|
33
|
+
### Bugfixes
|
34
|
+
|
35
|
+
- [#123] Remove reference to ApplicationRecord (thanks to @wheeyls)
|
36
|
+
- [#124] Clone doorkeeper.grant_flows array before appending 'refresh_token' (thanks to @davidbasalla)
|
37
|
+
- [#129] Avoid to use the config alias while supporting Doorkeeper 5.2 (thanks to @kymmt90)
|
38
|
+
|
3
39
|
## v1.7.4 (2020-07-06)
|
4
40
|
|
5
41
|
- [#119] Execute end_session_endpoint in the controllers context (thanks to @joeljunstrom)
|
data/README.md
CHANGED
@@ -34,6 +34,7 @@ The following parts of [OpenID Connect Core 1.0](http://openid.net/specs/openid-
|
|
34
34
|
- [Requesting Claims using Scope Values](http://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims)
|
35
35
|
- [UserInfo Endpoint](http://openid.net/specs/openid-connect-core-1_0.html#UserInfo)
|
36
36
|
- [Normal Claims](http://openid.net/specs/openid-connect-core-1_0.html#NormalClaims)
|
37
|
+
- [OAuth 2.0 Form Post Response Mode](https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html)
|
37
38
|
|
38
39
|
In addition we also support most of [OpenID Connect Discovery 1.0](http://openid.net/specs/openid-connect-discovery-1_0.html) for automatic configuration discovery.
|
39
40
|
|
@@ -103,6 +104,7 @@ The following settings are required in `config/initializers/doorkeeper_openid_co
|
|
103
104
|
|
104
105
|
- `issuer`
|
105
106
|
- Identifier for the issuer of the response (i.e. your application URL). The value is a case sensitive URL using the `https` scheme that contains scheme, host, and optionally, port number and path components and no query or fragment components.
|
107
|
+
- You can either pass a string value, or a block to generate the issuer dynamically based on the `resource_owner` and `application` or [request](app/controllers/doorkeeper/openid_connect/discovery_controller.rb#L123) passed to the block.
|
106
108
|
- `subject`
|
107
109
|
- Identifier for the resource owner (i.e. the authenticated user). A locally unique and never reassigned identifier within the issuer for the end-user, which is intended to be consumed by the client. The value is a case-sensitive string and must not exceed 255 ASCII characters in length.
|
108
110
|
- The database ID of the user is an acceptable choice if you don't mind leaking that information.
|
@@ -161,6 +163,35 @@ The following settings are optional:
|
|
161
163
|
- Used by implementations like https://github.com/IdentityModel/oidc-client-js.
|
162
164
|
- The block is executed in the controller's scope, so you have access to your route helpers.
|
163
165
|
|
166
|
+
- `discovery_url_options`
|
167
|
+
- The URL options for every available endpoint to use when generating the endpoint URL in the
|
168
|
+
discovery response. Available endpoints: `authorization`, `token`, `revocation`,
|
169
|
+
`introspection`, `userinfo`, `jwks`, `webfinger`.
|
170
|
+
- This option requires option keys with an available endpoint and
|
171
|
+
[URL options](https://api.rubyonrails.org/v6.0.3.3/classes/ActionDispatch/Routing/UrlFor.html#method-i-url_for)
|
172
|
+
as value.
|
173
|
+
- The default is to use the request host, just like all the other URLs in the discovery response.
|
174
|
+
- This is useful when you want endpoints to use a different URL than other requests.
|
175
|
+
For example, if your Doorkeeper server is behind a firewall with other servers, you might want
|
176
|
+
other servers to use an "internal" URL to communicate with Doorkeeper, but you want to present
|
177
|
+
an "external" URL to end-users for authentication requests. Note that this setting does not
|
178
|
+
actually change the URL that your Doorkeeper server responds on - that is outside the scope of
|
179
|
+
Doorkeeper.
|
180
|
+
|
181
|
+
```ruby
|
182
|
+
# config/initializers/doorkeeper_openid_connect.rb
|
183
|
+
Doorkeeper::OpenidConnect.configure do
|
184
|
+
# ...
|
185
|
+
discovery_url_options do |request|
|
186
|
+
{
|
187
|
+
authorization: { host: 'host.example.com' },
|
188
|
+
jwks: { protocol: request.ssl? ? :https : :http }
|
189
|
+
}
|
190
|
+
end
|
191
|
+
# ...
|
192
|
+
end
|
193
|
+
```
|
194
|
+
|
164
195
|
### Scopes
|
165
196
|
|
166
197
|
To perform authentication over OpenID Connect, an OAuth client needs to request the `openid` scope. This scope needs to be enabled using either `optional_scopes` in the global Doorkeeper configuration in `config/initializers/doorkeeper.rb`, or by adding it to any OAuth application's `scope` attribute.
|
@@ -24,21 +24,22 @@ module Doorkeeper
|
|
24
24
|
def provider_response
|
25
25
|
doorkeeper = ::Doorkeeper.configuration
|
26
26
|
openid_connect = ::Doorkeeper::OpenidConnect.configuration
|
27
|
+
|
27
28
|
{
|
28
|
-
issuer:
|
29
|
-
authorization_endpoint: oauth_authorization_url(
|
30
|
-
token_endpoint: oauth_token_url(
|
31
|
-
revocation_endpoint: oauth_revoke_url(
|
32
|
-
introspection_endpoint: oauth_introspect_url(
|
33
|
-
userinfo_endpoint: oauth_userinfo_url(
|
34
|
-
jwks_uri: oauth_discovery_keys_url(
|
29
|
+
issuer: issuer,
|
30
|
+
authorization_endpoint: oauth_authorization_url(authorization_url_options),
|
31
|
+
token_endpoint: oauth_token_url(token_url_options),
|
32
|
+
revocation_endpoint: oauth_revoke_url(revocation_url_options),
|
33
|
+
introspection_endpoint: oauth_introspect_url(introspection_url_options),
|
34
|
+
userinfo_endpoint: oauth_userinfo_url(userinfo_url_options),
|
35
|
+
jwks_uri: oauth_discovery_keys_url(jwks_url_options),
|
35
36
|
end_session_endpoint: instance_exec(&openid_connect.end_session_endpoint),
|
36
37
|
|
37
38
|
scopes_supported: doorkeeper.scopes,
|
38
39
|
|
39
40
|
# TODO: support id_token response type
|
40
41
|
response_types_supported: doorkeeper.authorization_response_types,
|
41
|
-
response_modes_supported:
|
42
|
+
response_modes_supported: response_modes_supported(doorkeeper),
|
42
43
|
grant_types_supported: grant_types_supported(doorkeeper),
|
43
44
|
|
44
45
|
# TODO: look into doorkeeper-jwt_assertion for these
|
@@ -71,18 +72,22 @@ module Doorkeeper
|
|
71
72
|
end
|
72
73
|
|
73
74
|
def grant_types_supported(doorkeeper)
|
74
|
-
grant_types_supported = doorkeeper.grant_flows
|
75
|
+
grant_types_supported = doorkeeper.grant_flows.dup
|
75
76
|
grant_types_supported << 'refresh_token' if doorkeeper.refresh_token_enabled?
|
76
77
|
grant_types_supported
|
77
78
|
end
|
78
79
|
|
80
|
+
def response_modes_supported(doorkeeper)
|
81
|
+
doorkeeper.authorization_response_flows.flat_map(&:response_mode_matches).uniq
|
82
|
+
end
|
83
|
+
|
79
84
|
def webfinger_response
|
80
85
|
{
|
81
86
|
subject: params.require(:resource),
|
82
87
|
links: [
|
83
88
|
{
|
84
89
|
rel: WEBFINGER_RELATION,
|
85
|
-
href: root_url(
|
90
|
+
href: root_url(webfinger_url_options),
|
86
91
|
}
|
87
92
|
]
|
88
93
|
}
|
@@ -104,6 +109,30 @@ module Doorkeeper
|
|
104
109
|
def protocol
|
105
110
|
Doorkeeper::OpenidConnect.configuration.protocol.call
|
106
111
|
end
|
112
|
+
|
113
|
+
def discovery_url_options
|
114
|
+
Doorkeeper::OpenidConnect.configuration.discovery_url_options.call(request)
|
115
|
+
end
|
116
|
+
|
117
|
+
def discovery_url_default_options
|
118
|
+
{
|
119
|
+
protocol: protocol
|
120
|
+
}
|
121
|
+
end
|
122
|
+
|
123
|
+
def issuer
|
124
|
+
if Doorkeeper::OpenidConnect.configuration.issuer.respond_to?(:call)
|
125
|
+
Doorkeeper::OpenidConnect.configuration.issuer.call(request).to_s
|
126
|
+
else
|
127
|
+
Doorkeeper::OpenidConnect.configuration.issuer
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
%i[authorization token revocation introspection userinfo jwks webfinger].each do |endpoint|
|
132
|
+
define_method :"#{endpoint}_url_options" do
|
133
|
+
discovery_url_default_options.merge(discovery_url_options[endpoint.to_sym] || {})
|
134
|
+
end
|
135
|
+
end
|
107
136
|
end
|
108
137
|
end
|
109
138
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Doorkeeper
|
4
4
|
module OpenidConnect
|
5
5
|
class UserinfoController < ::Doorkeeper::ApplicationController
|
6
|
-
unless Doorkeeper.
|
6
|
+
unless Doorkeeper.configuration.api_only
|
7
7
|
skip_before_action :verify_authenticity_token
|
8
8
|
end
|
9
9
|
before_action -> { doorkeeper_authorize! :openid }
|
@@ -17,19 +17,17 @@ module Doorkeeper
|
|
17
17
|
true
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
Authorization::URIBuilder.uri_with_fragment(pre_auth.redirect_uri, redirect_uri_params)
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def redirect_uri_params
|
20
|
+
def body
|
27
21
|
{
|
28
22
|
expires_in: auth.token.expires_in_seconds,
|
29
23
|
state: pre_auth.state,
|
30
24
|
id_token: id_token.as_jws_token
|
31
25
|
}
|
32
26
|
end
|
27
|
+
|
28
|
+
def redirect_uri
|
29
|
+
Authorization::URIBuilder.uri_with_fragment(pre_auth.redirect_uri, body)
|
30
|
+
end
|
33
31
|
end
|
34
32
|
end
|
35
33
|
end
|
@@ -52,15 +52,16 @@ module Doorkeeper
|
|
52
52
|
redirect_uri: params[:redirect_uri],
|
53
53
|
response_on_fragment: pre_auth.response_on_fragment?,
|
54
54
|
)
|
55
|
-
|
55
|
+
end
|
56
56
|
|
57
57
|
response.headers.merge!(error_response.headers)
|
58
58
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
59
|
+
# NOTE: Assign error_response to @authorize_response then use redirect_or_render method that are defined at
|
60
|
+
# doorkeeper's authorizations_controller.
|
61
|
+
# - https://github.com/doorkeeper-gem/doorkeeper/blob/v5.5.0/app/controllers/doorkeeper/authorizations_controller.rb#L110
|
62
|
+
# - https://github.com/doorkeeper-gem/doorkeeper/blob/v5.5.0/app/controllers/doorkeeper/authorizations_controller.rb#L52
|
63
|
+
@authorize_response = error_response
|
64
|
+
redirect_or_render(@authorize_response)
|
64
65
|
end
|
65
66
|
|
66
67
|
def handle_oidc_prompt_param!(owner)
|
@@ -40,7 +40,11 @@ module Doorkeeper
|
|
40
40
|
private
|
41
41
|
|
42
42
|
def issuer
|
43
|
-
Doorkeeper::OpenidConnect.configuration.issuer
|
43
|
+
if Doorkeeper::OpenidConnect.configuration.issuer.respond_to?(:call)
|
44
|
+
Doorkeeper::OpenidConnect.configuration.issuer.call(@resource_owner, @access_token.application).to_s
|
45
|
+
else
|
46
|
+
Doorkeeper::OpenidConnect.configuration.issuer
|
47
|
+
end
|
44
48
|
end
|
45
49
|
|
46
50
|
def subject
|
@@ -6,9 +6,16 @@ module Doorkeeper
|
|
6
6
|
module PasswordAccessTokenRequest
|
7
7
|
attr_reader :nonce
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
if Gem.loaded_specs['doorkeeper'].version >= Gem::Version.create('5.5.1')
|
10
|
+
def initialize(server, client, credentials, resource_owner, parameters = {})
|
11
|
+
super
|
12
|
+
@nonce = parameters[:nonce]
|
13
|
+
end
|
14
|
+
else
|
15
|
+
def initialize(server, client, resource_owner, parameters = {})
|
16
|
+
super
|
17
|
+
@nonce = parameters[:nonce]
|
18
|
+
end
|
12
19
|
end
|
13
20
|
|
14
21
|
private
|
@@ -7,27 +7,20 @@ module Doorkeeper
|
|
7
7
|
attr_reader :nonce
|
8
8
|
|
9
9
|
def initialize(server, attrs = {}, resource_owner = nil)
|
10
|
-
|
11
|
-
Doorkeeper::VERSION::MAJOR >= 6
|
12
|
-
super
|
13
|
-
else
|
14
|
-
super(server, attrs)
|
15
|
-
end
|
10
|
+
super
|
16
11
|
@nonce = attrs[:nonce]
|
17
12
|
end
|
18
13
|
|
19
|
-
#
|
20
|
-
#
|
21
|
-
def
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
# NOTE: Auto get default response_mode of specified response_type if response_mode is not
|
15
|
+
# yet present. We can delete this method after Doorkeeper's minimize version support it.
|
16
|
+
def response_on_fragment?
|
17
|
+
return response_mode == 'fragment' if response_mode.present?
|
18
|
+
|
19
|
+
grant_flow = server.authorization_response_flows.detect do |flow|
|
20
|
+
flow.matches_response_type?(response_type)
|
26
21
|
end
|
27
|
-
end
|
28
22
|
|
29
|
-
|
30
|
-
Doorkeeper::OpenidConnect::ResponseMode.new(response_type).fragment?
|
23
|
+
grant_flow&.default_response_mode == 'fragment'
|
31
24
|
end
|
32
25
|
end
|
33
26
|
end
|
@@ -16,13 +16,11 @@ require 'doorkeeper/openid_connect/claims_builder'
|
|
16
16
|
require 'doorkeeper/openid_connect/claims/claim'
|
17
17
|
require 'doorkeeper/openid_connect/claims/normal_claim'
|
18
18
|
require 'doorkeeper/openid_connect/config'
|
19
|
-
require 'doorkeeper/openid_connect/response_types_config'
|
20
19
|
require 'doorkeeper/openid_connect/engine'
|
21
20
|
require 'doorkeeper/openid_connect/errors'
|
22
21
|
require 'doorkeeper/openid_connect/id_token'
|
23
22
|
require 'doorkeeper/openid_connect/id_token_token'
|
24
23
|
require 'doorkeeper/openid_connect/user_info'
|
25
|
-
require 'doorkeeper/openid_connect/response_mode'
|
26
24
|
require 'doorkeeper/openid_connect/version'
|
27
25
|
|
28
26
|
require 'doorkeeper/openid_connect/helpers/controller'
|
@@ -65,26 +63,22 @@ module Doorkeeper
|
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
66
|
+
Doorkeeper::GrantFlow.register(
|
67
|
+
:id_token,
|
68
|
+
response_type_matches: 'id_token',
|
69
|
+
response_mode_matches: %w[fragment form_post],
|
70
|
+
response_type_strategy: Doorkeeper::Request::IdToken,
|
71
|
+
)
|
74
72
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
73
|
+
Doorkeeper::GrantFlow.register(
|
74
|
+
'id_token token',
|
75
|
+
response_type_matches: 'id_token token',
|
76
|
+
response_mode_matches: %w[fragment form_post],
|
77
|
+
response_type_strategy: Doorkeeper::Request::IdTokenToken,
|
78
|
+
)
|
80
79
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
else
|
85
|
-
# TODO: drop this and corresponding file when we will set minimal
|
86
|
-
# required Doorkeeper version to 5.5.
|
87
|
-
Doorkeeper::Config.prepend OpenidConnect::ResponseTypeConfig
|
88
|
-
end
|
80
|
+
Doorkeeper::GrantFlow.register_alias(
|
81
|
+
'implicit_oidc', as: ['implicit', 'id_token', 'id_token token']
|
82
|
+
)
|
89
83
|
end
|
90
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: doorkeeper-openid_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Dengler
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-02-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: doorkeeper
|
@@ -17,20 +17,20 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '5.
|
20
|
+
version: '5.5'
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '5.
|
23
|
+
version: '5.6'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '5.
|
30
|
+
version: '5.5'
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '5.
|
33
|
+
version: '5.6'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: json-jwt
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,8 +157,6 @@ files:
|
|
157
157
|
- lib/doorkeeper/openid_connect/rails/routes.rb
|
158
158
|
- lib/doorkeeper/openid_connect/rails/routes/mapper.rb
|
159
159
|
- lib/doorkeeper/openid_connect/rails/routes/mapping.rb
|
160
|
-
- lib/doorkeeper/openid_connect/response_mode.rb
|
161
|
-
- lib/doorkeeper/openid_connect/response_types_config.rb
|
162
160
|
- lib/doorkeeper/openid_connect/user_info.rb
|
163
161
|
- lib/doorkeeper/openid_connect/version.rb
|
164
162
|
- lib/doorkeeper/request/id_token.rb
|
@@ -179,14 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
179
177
|
requirements:
|
180
178
|
- - ">="
|
181
179
|
- !ruby/object:Gem::Version
|
182
|
-
version: '2.
|
180
|
+
version: '2.5'
|
183
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
182
|
requirements:
|
185
183
|
- - ">="
|
186
184
|
- !ruby/object:Gem::Version
|
187
185
|
version: '0'
|
188
186
|
requirements: []
|
189
|
-
rubygems_version: 3.0.
|
187
|
+
rubygems_version: 3.0.8
|
190
188
|
signing_key:
|
191
189
|
specification_version: 4
|
192
190
|
summary: OpenID Connect extension for Doorkeeper.
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Doorkeeper
|
4
|
-
module OpenidConnect
|
5
|
-
class ResponseMode
|
6
|
-
attr_reader :type
|
7
|
-
|
8
|
-
def initialize(response_type)
|
9
|
-
@type = response_type
|
10
|
-
end
|
11
|
-
|
12
|
-
def fragment?
|
13
|
-
mode == 'fragment'
|
14
|
-
end
|
15
|
-
|
16
|
-
def query?
|
17
|
-
mode == 'query'
|
18
|
-
end
|
19
|
-
|
20
|
-
def mode
|
21
|
-
case type
|
22
|
-
when 'token', 'id_token', 'id_token token'
|
23
|
-
'fragment'
|
24
|
-
else
|
25
|
-
'query'
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Doorkeeper
|
4
|
-
module OpenidConnect
|
5
|
-
module ResponseTypeConfig
|
6
|
-
private def calculate_authorization_response_types
|
7
|
-
types = super
|
8
|
-
if grant_flows.include? 'implicit_oidc'
|
9
|
-
types << 'token'
|
10
|
-
types << 'id_token'
|
11
|
-
types << 'id_token token'
|
12
|
-
end
|
13
|
-
types
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|