doorkeeper-openid_connect 1.8.9 → 1.8.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4be7fb9d22f08874e5c2a9787b117bf7aa242d7025cd82b6a0a25a87f0a9b884
4
- data.tar.gz: 98414bc85490c8d30a1a9af2e9afade375798e6e805353c04b6f73813beae3e0
3
+ metadata.gz: 3f528fd39b26ece5800ff5a5cc38b8fdd0945c5bd9298e6a03bad7df0f7fe9c9
4
+ data.tar.gz: cefcf626ab0f1cbf825a792b529b643081c3be96dcdbc922507e06cd3844218c
5
5
  SHA512:
6
- metadata.gz: 8d565610a8ae44d7476a74c10687023e7469733cc7be62181ba0a7b60186e1dc48eb0d56b9dd38bba31ce49399d1e9856dd72228ac49f143874df885a2142a9b
7
- data.tar.gz: 4492366ef87fa2ed9bd256efa44faf68d07a33336892e5cc44e30c199b1953fe4da591eab9359bc0274175cf23ece590b02597dc6c0265f205fce430699f020f
6
+ metadata.gz: 3a16a5cc0bf3de2e6232900126d111093f6313bc00264ee77e9385260bef586b22152971905b87e728eff7eeb7fde16fd67d73843c13ba88b17925ebc6d41f7b
7
+ data.tar.gz: d7215370a0be9369fe05a61cd4fee8d2df68a79bdbd104f4cde638e704c83637f23af76369afa532dc68b349f180fdb2ccb6e7772d87647356b0e3018424230e
data/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  - [#PR ID] Add your changelog entry here.
4
4
 
5
+ ## v1.8.11 (2025-02-10)
6
+
7
+ - [#219] Test against Ruby 3.4.
8
+ - [#216] Test against Rails 7.1, 7.2, 8.0.
9
+ - [#222] Support max_age=0
10
+ - [#221] Avoid raising invalid_request error on prompt=create
11
+ - [#220] Define priority on possible prompt values to statically & successfully process multiple prompt values
12
+ - [#224] Define priority between max_age & prompt
13
+
14
+ ## v1.8.10 (2024-11-29)
15
+
16
+ - [#215] Drop support for Ruby 2.7, 3.0 and Rails 6.
17
+ - [#209] Configuration per IdToken expiration (thanks to @martinezcoder)
18
+
5
19
  ## v1.8.9 (2024-05-07)
6
20
 
7
21
  - Support Doorkeeper 5.7
@@ -17,8 +17,8 @@ module Doorkeeper
17
17
  super.tap do |owner|
18
18
  next unless oidc_authorization_request?
19
19
 
20
- handle_oidc_prompt_param!(owner)
21
20
  handle_oidc_max_age_param!(owner)
21
+ handle_oidc_prompt_param!(owner)
22
22
  end
23
23
  rescue Errors::OpenidConnectError => e
24
24
  handle_oidc_error!(e)
@@ -67,6 +67,11 @@ module Doorkeeper
67
67
  def handle_oidc_prompt_param!(owner)
68
68
  prompt_values ||= params[:prompt].to_s.split(/ +/).uniq
69
69
 
70
+ priority = ['none', 'consent', 'login', 'select_account']
71
+ prompt_values.sort_by! do |prompt|
72
+ priority.find_index(prompt).to_i
73
+ end
74
+
70
75
  prompt_values.each do |prompt|
71
76
  case prompt
72
77
  when 'none'
@@ -79,6 +84,8 @@ module Doorkeeper
79
84
  render :new if owner
80
85
  when 'select_account'
81
86
  select_account_for_oidc_resource_owner(owner)
87
+ when 'create'
88
+ # NOTE: not supported, but not raise error.
82
89
  else
83
90
  raise Errors::InvalidRequest
84
91
  end
@@ -87,13 +94,16 @@ module Doorkeeper
87
94
 
88
95
  def handle_oidc_max_age_param!(owner)
89
96
  max_age = params[:max_age].to_i
90
- return unless max_age > 0 && owner
97
+ return unless (params[:max_age].to_s == '0' || max_age > 0) && owner
91
98
 
92
99
  auth_time = instance_exec(
93
100
  owner,
94
101
  &Doorkeeper::OpenidConnect.configuration.auth_time_from_resource_owner
95
102
  )
96
103
 
104
+ # NOTE: clock skew
105
+ max_age = [1, max_age].max
106
+
97
107
  if !auth_time || (Time.zone.now - auth_time) > max_age
98
108
  reauthenticate_oidc_resource_owner(owner)
99
109
  end
@@ -7,11 +7,12 @@ module Doorkeeper
7
7
 
8
8
  attr_reader :nonce
9
9
 
10
- def initialize(access_token, nonce = nil)
10
+ def initialize(access_token, nonce = nil, expires_in = Doorkeeper::OpenidConnect.configuration.expiration)
11
11
  @access_token = access_token
12
12
  @nonce = nonce
13
13
  @resource_owner = Doorkeeper::OpenidConnect.configuration.resource_owner_from_access_token.call(access_token)
14
14
  @issued_at = Time.zone.now
15
+ @expires_in = expires_in
15
16
  end
16
17
 
17
18
  def claims
@@ -57,7 +58,7 @@ module Doorkeeper
57
58
  end
58
59
 
59
60
  def expiration
60
- (@issued_at.utc + Doorkeeper::OpenidConnect.configuration.expiration).to_i
61
+ (@issued_at.utc + @expires_in).to_i
61
62
  end
62
63
 
63
64
  def issued_at
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Doorkeeper
4
4
  module OpenidConnect
5
- VERSION = '1.8.9'
5
+ VERSION = '1.8.11'
6
6
  end
7
7
  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.8.9
4
+ version: 1.8.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Dengler
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-05-07 00:00:00.000000000 Z
13
+ date: 2025-02-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: doorkeeper
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '5.5'
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '5.8'
24
+ version: '5.9'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,7 +31,21 @@ dependencies:
31
31
  version: '5.5'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '5.8'
34
+ version: '5.9'
35
+ - !ruby/object:Gem::Dependency
36
+ name: ostruct
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0.5'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0.5'
35
49
  - !ruby/object:Gem::Dependency
36
50
  name: jwt
37
51
  requirement: !ruby/object:Gem::Requirement
@@ -46,6 +60,20 @@ dependencies:
46
60
  - - ">="
47
61
  - !ruby/object:Gem::Version
48
62
  version: '2.5'
63
+ - !ruby/object:Gem::Dependency
64
+ name: bigdecimal
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
49
77
  - !ruby/object:Gem::Dependency
50
78
  name: conventional-changelog
51
79
  requirement: !ruby/object:Gem::Requirement
@@ -60,6 +88,20 @@ dependencies:
60
88
  - - "~>"
61
89
  - !ruby/object:Gem::Version
62
90
  version: '1.2'
91
+ - !ruby/object:Gem::Dependency
92
+ name: drb
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
63
105
  - !ruby/object:Gem::Dependency
64
106
  name: factory_bot
65
107
  requirement: !ruby/object:Gem::Requirement
@@ -74,6 +116,20 @@ dependencies:
74
116
  - - ">="
75
117
  - !ruby/object:Gem::Version
76
118
  version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: mutex_m
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
77
133
  - !ruby/object:Gem::Dependency
78
134
  name: pry-byebug
79
135
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +235,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
235
  requirements:
180
236
  - - ">="
181
237
  - !ruby/object:Gem::Version
182
- version: '2.7'
238
+ version: '3.1'
183
239
  required_rubygems_version: !ruby/object:Gem::Requirement
184
240
  requirements:
185
241
  - - ">="