openid_connect 1.4.1 → 2.0.0.rc1
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/VERSION +1 -1
- data/lib/openid_connect/discovery/provider/config/response.rb +1 -1
- data/lib/openid_connect/request_object.rb +1 -1
- data/lib/openid_connect.rb +9 -12
- data/openid_connect.gemspec +7 -5
- data/spec/helpers/webmock_helper.rb +7 -1
- data/spec/openid_connect/client/registrar_spec.rb +1 -1
- data/spec/openid_connect_spec.rb +2 -2
- metadata +58 -20
- data/lib/openid_connect/debugger/request_filter.rb +0 -28
- data/lib/openid_connect/debugger.rb +0 -3
- data/spec/openid_connect/debugger/request_filter_spec.rb +0 -33
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cb76a4d6c2d160721424a331a41aec9b7653fac0ab5d918e179b17712bbac1fa
|
|
4
|
+
data.tar.gz: 3cd04f7571fd187fb2086d70eb2e81d23106f0dc062f97849c3fdd6546089965
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b48bc2e27026de35da232e85dc042da1db888095ab9d238a0eba8c552f7ab747b0787b38d7ea4430487487e42a8b3602abc2bb154aba06135f779c59d14d54c
|
|
7
|
+
data.tar.gz: 0cc2bc0144fd46ad6c6c599ae748e364d76e18aa5c396416056d4812dd7752fce920985c78af29a1807b5a2e333304f411962c10078463f79177fd6e950c372d
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2.0.0.rc1
|
data/lib/openid_connect.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
require 'json'
|
|
2
2
|
require 'logger'
|
|
3
|
+
require 'faraday'
|
|
4
|
+
require 'faraday/follow_redirects'
|
|
3
5
|
require 'swd'
|
|
4
6
|
require 'webfinger'
|
|
5
7
|
require 'active_model'
|
|
@@ -64,17 +66,13 @@ module OpenIDConnect
|
|
|
64
66
|
self.debugging = false
|
|
65
67
|
|
|
66
68
|
def self.http_client
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
_http_client_.request_filter << Debugger::RequestFilter.new if debugging?
|
|
76
|
-
http_config.try(:call, _http_client_)
|
|
77
|
-
_http_client_
|
|
69
|
+
Faraday.new(headers: {user_agent: "OpenIDConnect (#{VERSION})"}) do |faraday|
|
|
70
|
+
faraday.request :url_encoded
|
|
71
|
+
faraday.request :json
|
|
72
|
+
faraday.response :logger, OpenIDConnect.logger, {bodies: true} if debugging?
|
|
73
|
+
faraday.adapter Faraday.default_adapter
|
|
74
|
+
http_config&.call(faraday)
|
|
75
|
+
end
|
|
78
76
|
end
|
|
79
77
|
def self.http_config(&block)
|
|
80
78
|
@sub_protocols.each do |klass|
|
|
@@ -100,4 +98,3 @@ require 'openid_connect/access_token'
|
|
|
100
98
|
require 'openid_connect/jwtnizable'
|
|
101
99
|
require 'openid_connect/connect_object'
|
|
102
100
|
require 'openid_connect/discovery'
|
|
103
|
-
require 'openid_connect/debugger'
|
data/openid_connect.gemspec
CHANGED
|
@@ -17,14 +17,16 @@ Gem::Specification.new do |s|
|
|
|
17
17
|
s.add_runtime_dependency "activemodel"
|
|
18
18
|
s.add_runtime_dependency "validate_url"
|
|
19
19
|
s.add_runtime_dependency "validate_email"
|
|
20
|
-
s.add_runtime_dependency
|
|
21
|
-
s.add_runtime_dependency
|
|
22
|
-
s.add_runtime_dependency "
|
|
23
|
-
s.add_runtime_dependency "
|
|
20
|
+
s.add_runtime_dependency 'faraday', '~> 2.0'
|
|
21
|
+
s.add_runtime_dependency 'faraday-follow_redirects'
|
|
22
|
+
s.add_runtime_dependency "json-jwt", ">= 1.16"
|
|
23
|
+
s.add_runtime_dependency "swd", "~> 2.0"
|
|
24
|
+
s.add_runtime_dependency "webfinger", "~> 2.0"
|
|
25
|
+
s.add_runtime_dependency "rack-oauth2", "~> 2.0"
|
|
24
26
|
if Gem.ruby_version >= Gem::Version.create(3.1)
|
|
25
27
|
# TODO:
|
|
26
28
|
# remove "net-smtp" dependency after mail gem 2.8+ (which supports ruby 3.1+) released.
|
|
27
|
-
# ref.) https://rubygems.org/gems/
|
|
29
|
+
# ref.) https://rubygems.org/gems/mail
|
|
28
30
|
s.add_runtime_dependency "net-smtp"
|
|
29
31
|
end
|
|
30
32
|
s.add_development_dependency "rake"
|
|
@@ -32,7 +32,13 @@ module WebMockHelper
|
|
|
32
32
|
|
|
33
33
|
def response_for(response_file, options = {})
|
|
34
34
|
response = {}
|
|
35
|
-
|
|
35
|
+
format = options[:format] || :json
|
|
36
|
+
if format == :json
|
|
37
|
+
response[:headers] = {
|
|
38
|
+
'Content-Type': 'application/json'
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
response[:body] = File.new(File.join(File.dirname(__FILE__), '../mock_response', "#{response_file}.#{format}"))
|
|
36
42
|
if options[:status]
|
|
37
43
|
response[:status] = options[:status]
|
|
38
44
|
end
|
data/spec/openid_connect_spec.rb
CHANGED
|
@@ -46,12 +46,12 @@ describe OpenIDConnect do
|
|
|
46
46
|
context 'with http_config' do
|
|
47
47
|
before do
|
|
48
48
|
OpenIDConnect.http_config do |config|
|
|
49
|
-
config.
|
|
49
|
+
config.ssl.verify = false
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
it 'should configure OpenIDConnect, SWD and Rack::OAuth2\'s http_client' do
|
|
53
53
|
[OpenIDConnect, SWD, WebFinger, Rack::OAuth2].each do |klass|
|
|
54
|
-
klass.http_client.
|
|
54
|
+
klass.http_client.ssl.verify.should be_falsy
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
end
|
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:
|
|
4
|
+
version: 2.0.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- nov matake
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-10-
|
|
11
|
+
date: 2022-10-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: tzinfo
|
|
@@ -80,62 +80,104 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: faraday
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '2.0'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '2.0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: faraday-follow_redirects
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
83
111
|
- !ruby/object:Gem::Dependency
|
|
84
112
|
name: json-jwt
|
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
|
86
114
|
requirements:
|
|
87
115
|
- - ">="
|
|
88
116
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.
|
|
117
|
+
version: '1.16'
|
|
90
118
|
type: :runtime
|
|
91
119
|
prerelease: false
|
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
121
|
requirements:
|
|
94
122
|
- - ">="
|
|
95
123
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 1.
|
|
124
|
+
version: '1.16'
|
|
97
125
|
- !ruby/object:Gem::Dependency
|
|
98
126
|
name: swd
|
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
|
100
128
|
requirements:
|
|
101
129
|
- - "~>"
|
|
102
130
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
131
|
+
version: '2.0'
|
|
104
132
|
type: :runtime
|
|
105
133
|
prerelease: false
|
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
135
|
requirements:
|
|
108
136
|
- - "~>"
|
|
109
137
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
138
|
+
version: '2.0'
|
|
111
139
|
- !ruby/object:Gem::Dependency
|
|
112
140
|
name: webfinger
|
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
|
114
142
|
requirements:
|
|
115
143
|
- - "~>"
|
|
116
144
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
145
|
+
version: '2.0'
|
|
118
146
|
type: :runtime
|
|
119
147
|
prerelease: false
|
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
149
|
requirements:
|
|
122
150
|
- - "~>"
|
|
123
151
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
152
|
+
version: '2.0'
|
|
125
153
|
- !ruby/object:Gem::Dependency
|
|
126
154
|
name: rack-oauth2
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '2.0'
|
|
160
|
+
type: :runtime
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '2.0'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: net-smtp
|
|
127
169
|
requirement: !ruby/object:Gem::Requirement
|
|
128
170
|
requirements:
|
|
129
171
|
- - ">="
|
|
130
172
|
- !ruby/object:Gem::Version
|
|
131
|
-
version:
|
|
173
|
+
version: '0'
|
|
132
174
|
type: :runtime
|
|
133
175
|
prerelease: false
|
|
134
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
177
|
requirements:
|
|
136
178
|
- - ">="
|
|
137
179
|
- !ruby/object:Gem::Version
|
|
138
|
-
version:
|
|
180
|
+
version: '0'
|
|
139
181
|
- !ruby/object:Gem::Dependency
|
|
140
182
|
name: rake
|
|
141
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -242,8 +284,6 @@ files:
|
|
|
242
284
|
- lib/openid_connect/client.rb
|
|
243
285
|
- lib/openid_connect/client/registrar.rb
|
|
244
286
|
- lib/openid_connect/connect_object.rb
|
|
245
|
-
- lib/openid_connect/debugger.rb
|
|
246
|
-
- lib/openid_connect/debugger/request_filter.rb
|
|
247
287
|
- lib/openid_connect/discovery.rb
|
|
248
288
|
- lib/openid_connect/discovery/provider.rb
|
|
249
289
|
- lib/openid_connect/discovery/provider/config.rb
|
|
@@ -298,7 +338,6 @@ files:
|
|
|
298
338
|
- spec/openid_connect/client/registrar_spec.rb
|
|
299
339
|
- spec/openid_connect/client_spec.rb
|
|
300
340
|
- spec/openid_connect/connect_object_spec.rb
|
|
301
|
-
- spec/openid_connect/debugger/request_filter_spec.rb
|
|
302
341
|
- spec/openid_connect/discovery/provider/config/resource_spec.rb
|
|
303
342
|
- spec/openid_connect/discovery/provider/config/response_spec.rb
|
|
304
343
|
- spec/openid_connect/discovery/provider/config_spec.rb
|
|
@@ -321,7 +360,7 @@ homepage: https://github.com/nov/openid_connect
|
|
|
321
360
|
licenses:
|
|
322
361
|
- MIT
|
|
323
362
|
metadata: {}
|
|
324
|
-
post_install_message:
|
|
363
|
+
post_install_message:
|
|
325
364
|
rdoc_options: []
|
|
326
365
|
require_paths:
|
|
327
366
|
- lib
|
|
@@ -332,12 +371,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
332
371
|
version: '0'
|
|
333
372
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
373
|
requirements:
|
|
335
|
-
- - "
|
|
374
|
+
- - ">"
|
|
336
375
|
- !ruby/object:Gem::Version
|
|
337
|
-
version:
|
|
376
|
+
version: 1.3.1
|
|
338
377
|
requirements: []
|
|
339
|
-
rubygems_version: 3.
|
|
340
|
-
signing_key:
|
|
378
|
+
rubygems_version: 3.3.7
|
|
379
|
+
signing_key:
|
|
341
380
|
specification_version: 4
|
|
342
381
|
summary: OpenID Connect Server & Client Library
|
|
343
382
|
test_files:
|
|
@@ -372,7 +411,6 @@ test_files:
|
|
|
372
411
|
- spec/openid_connect/client/registrar_spec.rb
|
|
373
412
|
- spec/openid_connect/client_spec.rb
|
|
374
413
|
- spec/openid_connect/connect_object_spec.rb
|
|
375
|
-
- spec/openid_connect/debugger/request_filter_spec.rb
|
|
376
414
|
- spec/openid_connect/discovery/provider/config/resource_spec.rb
|
|
377
415
|
- spec/openid_connect/discovery/provider/config/response_spec.rb
|
|
378
416
|
- spec/openid_connect/discovery/provider/config_spec.rb
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module OpenIDConnect
|
|
2
|
-
module Debugger
|
|
3
|
-
class RequestFilter
|
|
4
|
-
# Callback called in HTTPClient (before sending a request)
|
|
5
|
-
# request:: HTTP::Message
|
|
6
|
-
def filter_request(request)
|
|
7
|
-
started = "======= [OpenIDConnect] HTTP REQUEST STARTED ======="
|
|
8
|
-
log started, request.dump
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# Callback called in HTTPClient (after received a response)
|
|
12
|
-
# request:: HTTP::Message
|
|
13
|
-
# response:: HTTP::Message
|
|
14
|
-
def filter_response(request, response)
|
|
15
|
-
finished = "======= [OpenIDConnect] HTTP REQUEST FINISHED ======="
|
|
16
|
-
log '-' * 50, response.dump, finished
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
def log(*outputs)
|
|
22
|
-
outputs.each do |output|
|
|
23
|
-
OpenIDConnect.logger.info output
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe OpenIDConnect::Debugger::RequestFilter do
|
|
4
|
-
let(:resource_endpoint) { 'https://example.com/resources' }
|
|
5
|
-
let(:request) { HTTP::Message.new_request(:get, URI.parse(resource_endpoint)) }
|
|
6
|
-
let(:response) { HTTP::Message.new_response({hello: 'world'}.to_json) }
|
|
7
|
-
let(:request_filter) { OpenIDConnect::Debugger::RequestFilter.new }
|
|
8
|
-
|
|
9
|
-
describe '#filter_request' do
|
|
10
|
-
it 'should log request' do
|
|
11
|
-
[
|
|
12
|
-
"======= [OpenIDConnect] HTTP REQUEST STARTED =======",
|
|
13
|
-
request.dump
|
|
14
|
-
].each do |output|
|
|
15
|
-
expect(OpenIDConnect.logger).to receive(:info).with output
|
|
16
|
-
end
|
|
17
|
-
request_filter.filter_request(request)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
describe '#filter_response' do
|
|
22
|
-
it 'should log response' do
|
|
23
|
-
[
|
|
24
|
-
"--------------------------------------------------",
|
|
25
|
-
response.dump,
|
|
26
|
-
"======= [OpenIDConnect] HTTP REQUEST FINISHED ======="
|
|
27
|
-
].each do |output|
|
|
28
|
-
expect(OpenIDConnect.logger).to receive(:info).with output
|
|
29
|
-
end
|
|
30
|
-
request_filter.filter_response(request, response)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|