doorkeeper-openid_connect 1.6.3 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87cffdb0b8767c7cb1a254e74fd4c7b3ce5f4b92a8502538b9c09ee6a68915af
4
- data.tar.gz: 050c8765bb944400e148a4d981371d4a560cb2295d47036e45d57cfa64914aae
3
+ metadata.gz: 9f38540bf15e49809e21423a76e0fd8313c5494aee4a3537f6b6d1bcd5645951
4
+ data.tar.gz: d1408e8c1a4755356746a55957dbc941242fb266ead2e5f92d29d46646258958
5
5
  SHA512:
6
- metadata.gz: 0e90c44c55b03ab497357b6d3abfc3d8652ff53b88e41556733e2f30584b13f64bd0cca9721f0127c12f0c08a3676668c9a2164c5805c8db6cad375d94f72d2e
7
- data.tar.gz: 51f41fa2dc0d4f26104f6a96a656bde761d9df1754001b645cad625f44657f44b7d54cc17a48c9b4dbf6fc53c294f716fe08de9a80bb7a748f78c4a798933542
6
+ metadata.gz: 71ca0f37f65e787785550e64d4b5fc4ad05ad74ec93601e909924d1984f6b42612c4856bc8439373f8af52a8958e0e80beaf711ed78b012784eb941f46aeb889
7
+ data.tar.gz: f5c46bc891ed65513493cbeb7304fe76c04a62c03e8ce51b5f1849319da9be27bfa304b5064e028421a88583db4adf4e3ec71e3c4d900fd6ff850e44fa76a826
@@ -18,17 +18,10 @@ script:
18
18
  - bundle exec rake spec
19
19
 
20
20
  env:
21
- - rails=4.2.0
22
21
  - rails=5.0.0
23
22
  - rails=5.2.0
24
23
 
25
24
  rvm:
26
- - 2.3
27
25
  - 2.4
28
26
  - 2.5
29
27
  - 2.6
30
-
31
- matrix:
32
- exclude:
33
- - env: rails=4.2.0
34
- rvm: 2.6
@@ -2,6 +2,12 @@
2
2
 
3
3
  No changes yet.
4
4
 
5
+ ## v1.7.0
6
+
7
+ ### Changes
8
+
9
+ - [#85] This gem now requires Doorkeeper 5.2, Rails 5, and Ruby 2.4
10
+
5
11
  ## v1.6.3 (2019-09-24)
6
12
 
7
13
  ### Changes
data/Gemfile CHANGED
@@ -3,9 +3,6 @@ source 'https://rubygems.org'
3
3
  # use Rails version specified by environment
4
4
  ENV['rails'] ||= '5.2.0'
5
5
  gem 'rails', "~> #{ENV['rails']}"
6
-
7
- if ENV['rails'] =~ /^5./
8
- gem 'rails-controller-testing'
9
- end
6
+ gem 'rails-controller-testing'
10
7
 
11
8
  gemspec
@@ -17,13 +17,15 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.required_ruby_version = ">= 2.3"
20
+ spec.required_ruby_version = ">= 2.4"
21
21
 
22
- spec.add_runtime_dependency 'doorkeeper', '>= 5.0', '< 5.2'
22
+ spec.add_runtime_dependency 'doorkeeper', '~> 5.2.0'
23
23
  spec.add_runtime_dependency 'json-jwt', '~> 1.6'
24
24
 
25
25
  spec.add_development_dependency 'rspec-rails'
26
26
  spec.add_development_dependency 'factory_bot'
27
+ # We need to stick to this sqlite3 version for Rails 5.0
28
+ # https://github.com/rails/rails/pull/35154
27
29
  spec.add_development_dependency 'sqlite3', '~> 1.3.6'
28
30
  spec.add_development_dependency 'pry-byebug'
29
31
  spec.add_development_dependency 'conventional-changelog', '~> 1.2'
@@ -2,8 +2,8 @@ module Doorkeeper
2
2
  module OpenidConnect
3
3
  module Errors
4
4
  class OpenidConnectError < StandardError
5
- def error_name
6
- self.class.name.demodulize.underscore
5
+ def type
6
+ self.class.name.demodulize.underscore.to_sym
7
7
  end
8
8
  end
9
9
 
@@ -18,6 +18,7 @@ module Doorkeeper
18
18
  def oidc_authorization_request?
19
19
  controller_path == Doorkeeper::Rails::Routes.mapping[:authorizations][:controllers] &&
20
20
  action_name == 'new' &&
21
+ pre_auth.valid? &&
21
22
  pre_auth.client &&
22
23
  pre_auth.scopes.include?('openid')
23
24
  end
@@ -29,14 +30,18 @@ module Doorkeeper
29
30
  # FIXME: workaround for Rails 5, see https://github.com/rails/rails/issues/25106
30
31
  @_response_body = nil
31
32
 
32
- error_response = if pre_auth.valid?
33
- ::Doorkeeper::OAuth::ErrorResponse.new(
34
- name: exception.error_name,
33
+ error_response = if exception.type == :invalid_request
34
+ ::Doorkeeper::OAuth::InvalidRequestResponse.new(
35
+ name: exception.type,
35
36
  state: params[:state],
36
- redirect_uri: params[:redirect_uri]
37
+ redirect_uri: params[:redirect_uri],
37
38
  )
38
39
  else
39
- pre_auth.error_response
40
+ ::Doorkeeper::OAuth::ErrorResponse.new(
41
+ name: exception.type,
42
+ state: params[:state],
43
+ redirect_uri: params[:redirect_uri],
44
+ )
40
45
  end
41
46
 
42
47
  response.headers.merge!(error_response.headers)
@@ -53,15 +58,15 @@ module Doorkeeper
53
58
 
54
59
  prompt_values.each do |prompt|
55
60
  case prompt
56
- when 'none' then
61
+ when 'none'
57
62
  raise Errors::InvalidRequest if (prompt_values - [ 'none' ]).any?
58
63
  raise Errors::LoginRequired unless owner
59
64
  raise Errors::ConsentRequired if oidc_consent_required?(owner)
60
- when 'login' then
65
+ when 'login'
61
66
  reauthenticate_oidc_resource_owner(owner) if owner
62
- when 'consent' then
67
+ when 'consent'
63
68
  render :new
64
- when 'select_account' then
69
+ when 'select_account'
65
70
  # TODO: let the user implement this
66
71
  raise Errors::AccountSelectionRequired
67
72
  else
@@ -74,8 +79,10 @@ module Doorkeeper
74
79
  max_age = params[:max_age].to_i
75
80
  return unless max_age > 0 && owner
76
81
 
77
- auth_time = instance_exec owner,
82
+ auth_time = instance_exec(
83
+ owner,
78
84
  &Doorkeeper::OpenidConnect.configuration.auth_time_from_resource_owner
85
+ )
79
86
 
80
87
  if !auth_time || (Time.zone.now - auth_time) > max_age
81
88
  reauthenticate_oidc_resource_owner(owner)
@@ -89,8 +96,11 @@ module Doorkeeper
89
96
  params.delete('prompt') if params['prompt'].blank?
90
97
  end.to_query
91
98
 
92
- instance_exec owner, return_to.to_s,
99
+ instance_exec(
100
+ owner,
101
+ return_to.to_s,
93
102
  &Doorkeeper::OpenidConnect.configuration.reauthenticate_resource_owner
103
+ )
94
104
 
95
105
  raise Errors::LoginRequired unless performed?
96
106
  end
@@ -103,6 +113,7 @@ module Doorkeeper
103
113
 
104
114
  def oidc_consent_required?(owner)
105
115
  return false if skip_authorization?
116
+
106
117
  matching_tokens_for_oidc_resource_owner(owner).blank?
107
118
  end
108
119
  end
@@ -4,7 +4,7 @@ module Doorkeeper
4
4
  module PreAuthorization
5
5
  attr_reader :nonce
6
6
 
7
- def initialize(server, client, attrs = {})
7
+ def initialize(server, attrs = {})
8
8
  super
9
9
  @nonce = attrs[:nonce]
10
10
  end
@@ -1,5 +1,5 @@
1
1
  module Doorkeeper
2
2
  module OpenidConnect
3
- VERSION = '1.6.3'.freeze
3
+ VERSION = '1.7.0'.freeze
4
4
  end
5
5
  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.6.3
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Dengler
@@ -9,28 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-09-24 00:00:00.000000000 Z
12
+ date: 2019-11-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: doorkeeper
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: '5.0'
21
- - - "<"
18
+ - - "~>"
22
19
  - !ruby/object:Gem::Version
23
- version: '5.2'
20
+ version: 5.2.0
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- version: '5.0'
31
- - - "<"
25
+ - - "~>"
32
26
  - !ruby/object:Gem::Version
33
- version: '5.2'
27
+ version: 5.2.0
34
28
  - !ruby/object:Gem::Dependency
35
29
  name: json-jwt
36
30
  requirement: !ruby/object:Gem::Requirement
@@ -186,7 +180,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
180
  requirements:
187
181
  - - ">="
188
182
  - !ruby/object:Gem::Version
189
- version: '2.3'
183
+ version: '2.4'
190
184
  required_rubygems_version: !ruby/object:Gem::Requirement
191
185
  requirements:
192
186
  - - ">="