openid_connect 2.0.0 → 2.2.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: a317ad1ae31327d10da33f9fa4f0b9d6f1ffdd1ebd8bf9377b3eb6fc0396e765
4
- data.tar.gz: a979595513e6bef8390eeec26e66b8488c2c61e69892a2e25b8bc93ad468bb71
3
+ metadata.gz: 2b5a083aca9fb04e50e7ff4fb18d26d221daac9bf22ec1cfcc136007160a03db
4
+ data.tar.gz: 1eb0f4f04691552f0b276d284bb91f47d393c0afdc8e7473c57446c4e89c6cc1
5
5
  SHA512:
6
- metadata.gz: 96a6c6bb77b31435d4db942346d7cf8343ccb6dd6c2b564c181e5919b48bf7d55046dcabfa3f1ae73dee1205843481333e9a532b3fa019c7c954b28f668c8328
7
- data.tar.gz: a7a2afa782cf1ff4fe282b54741d338169701931b620d0187c9216792bb9b76a2b8aa3723d568c8629378df91203f71c6956dc12b49606e1bddb6e63e8d294c0
6
+ metadata.gz: 3469b7247c8337d0f3bc5adddc3ebc117676814fba726ba95d59fb50279ae7f8a91e3856962ab794e44bc3d8a0ccbb9adf07966bc4ff50139c74e08c783e5e1f
7
+ data.tar.gz: 5670dcd68a4b196ebb167c2eb313360d407ae30a77914da20f376f4cddef1b009642fc5aeee5eddbd971b03e7baee939076a7ed343a9e63906e309b261bda8be
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [2.0.0.rc1] - 2022-10-09
3
+ ## [2.1.0] - 2022-10-10
4
+
5
+ ### Changed
6
+
7
+ - mTLS access token by @nov in https://github.com/nov/openid_connect/pull/76
8
+
9
+ ## [2.0.0] - 2022-10-09
4
10
 
5
11
  ### Added
6
12
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.2.0
@@ -0,0 +1,9 @@
1
+ module OpenIDConnect
2
+ class AccessToken::MTLS < AccessToken
3
+ def initialize(attributes = {})
4
+ super
5
+ http_client.ssl.client_key = attributes[:private_key] || client.private_key
6
+ http_client.ssl.client_cert = attributes[:certificate] || client.certificate
7
+ end
8
+ end
9
+ end
@@ -15,13 +15,20 @@ module OpenIDConnect
15
15
  ResponseObject::UserInfo.new hash
16
16
  end
17
17
 
18
+ def to_mtls(attributes = {})
19
+ (required_attributes + optional_attributes).each do |key|
20
+ attributes[key] = self.send(key)
21
+ end
22
+ MTLS.new attributes
23
+ end
24
+
18
25
  private
19
26
 
20
27
  def resource_request
21
28
  res = yield
22
29
  case res.status
23
30
  when 200
24
- JSON.parse(res.body).with_indifferent_access
31
+ res.body.with_indifferent_access
25
32
  when 400
26
33
  raise BadRequest.new('API Access Faild', res)
27
34
  when 401
@@ -33,4 +40,6 @@ module OpenIDConnect
33
40
  end
34
41
  end
35
42
  end
36
- end
43
+ end
44
+
45
+ require 'openid_connect/access_token/mtls'
@@ -170,7 +170,7 @@ module OpenIDConnect
170
170
  end
171
171
 
172
172
  def handle_success_response(response)
173
- credentials = JSON.parse(response.body).with_indifferent_access
173
+ credentials = response.body.with_indifferent_access
174
174
  Client.new(
175
175
  identifier: credentials[:client_id],
176
176
  secret: credentials[:client_secret],
@@ -26,7 +26,7 @@ module OpenIDConnect
26
26
  end
27
27
 
28
28
  def handle_success_response(response)
29
- token_hash = JSON.parse(response.body).with_indifferent_access
29
+ token_hash = response.body.with_indifferent_access
30
30
  token_type = (@forced_token_type || token_hash[:token_type]).try(:downcase)
31
31
  case token_type
32
32
  when 'bearer'
@@ -34,8 +34,6 @@ module OpenIDConnect
34
34
  else
35
35
  raise Exception.new("Unexpected Token Type: #{token_type}")
36
36
  end
37
- rescue JSON::ParserError
38
- raise Exception.new("Unknown Token Type")
39
37
  end
40
38
  end
41
39
  end
@@ -81,9 +81,7 @@ module OpenIDConnect
81
81
  end
82
82
 
83
83
  def jwks
84
- @jwks ||= JSON.parse(
85
- OpenIDConnect.http_client.get(jwks_uri).body
86
- ).with_indifferent_access
84
+ @jwks ||= OpenIDConnect.http_client.get(jwks_uri).body.with_indifferent_access
87
85
  JSON::JWK::Set.new @jwks[:keys]
88
86
  end
89
87
 
@@ -69,6 +69,7 @@ module OpenIDConnect
69
69
  Faraday.new(headers: {user_agent: "OpenIDConnect (#{VERSION})"}) do |faraday|
70
70
  faraday.request :url_encoded
71
71
  faraday.request :json
72
+ faraday.response :json
72
73
  faraday.response :logger, OpenIDConnect.logger, {bodies: true} if debugging?
73
74
  faraday.adapter Faraday.default_adapter
74
75
  http_config&.call(faraday)
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_runtime_dependency "json-jwt", ">= 1.16"
23
23
  s.add_runtime_dependency "swd", "~> 2.0"
24
24
  s.add_runtime_dependency "webfinger", "~> 2.0"
25
- s.add_runtime_dependency "rack-oauth2", "~> 2.0"
25
+ s.add_runtime_dependency "rack-oauth2", "~> 2.2"
26
26
  if Gem.ruby_version >= Gem::Version.create(3.1)
27
27
  # TODO:
28
28
  # remove "net-smtp" dependency after mail gem 2.8+ (which supports ruby 3.1+) released.
@@ -1 +1,3 @@
1
- Fuckin Unknown Error
1
+ {
2
+ "unknown": "unknown"
3
+ }
@@ -162,16 +162,6 @@ describe OpenIDConnect::Client do
162
162
  end
163
163
  end
164
164
 
165
- context 'when invalid JSON is returned' do
166
- it 'should raise OpenIDConnect::Exception' do
167
- mock_json :post, client.token_endpoint, 'access_token/invalid_json', request_header: header_params, params: protocol_params do
168
- expect do
169
- access_token
170
- end.to raise_error OpenIDConnect::Exception, 'Unknown Token Type'
171
- end
172
- end
173
- end
174
-
175
165
  context 'otherwise' do
176
166
  it 'should raise Unexpected Token Type exception' do
177
167
  mock_json :post, client.token_endpoint, 'access_token/mac', request_header: header_params, params: protocol_params do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openid_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-09 00:00:00.000000000 Z
11
+ date: 2022-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tzinfo
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '2.0'
159
+ version: '2.2'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '2.0'
166
+ version: '2.2'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: net-smtp
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -282,6 +282,7 @@ files:
282
282
  - VERSION
283
283
  - lib/openid_connect.rb
284
284
  - lib/openid_connect/access_token.rb
285
+ - lib/openid_connect/access_token/mtls.rb
285
286
  - lib/openid_connect/client.rb
286
287
  - lib/openid_connect/client/registrar.rb
287
288
  - lib/openid_connect/connect_object.rb