openid_connect 0.3.3 → 0.3.4
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.
- data/Gemfile +1 -9
- data/Gemfile.lock +8 -11
- data/Rakefile +10 -16
- data/VERSION +1 -1
- data/lib/openid_connect.rb +1 -1
- data/lib/openid_connect/access_token.rb +2 -2
- data/lib/openid_connect/client.rb +2 -2
- data/lib/openid_connect/client/registrar.rb +16 -15
- data/lib/openid_connect/discovery/principal.rb +5 -5
- data/lib/openid_connect/discovery/provider/config.rb +1 -1
- data/lib/openid_connect/discovery/provider/config/resource.rb +4 -3
- data/lib/openid_connect/discovery/provider/config/response.rb +41 -1
- data/lib/openid_connect/request_object/claimable.rb +2 -2
- data/lib/openid_connect/response_object/id_token.rb +1 -1
- data/lib/openid_connect/response_object/user_info/open_id.rb +5 -5
- data/lib/rack/oauth2/server/authorize/error_with_connect_ext.rb +7 -7
- data/lib/rack/oauth2/server/id_token_response.rb +1 -1
- data/openid_connect.gemspec +1 -5
- data/spec/mock_response/public_keys/jwk.json +7 -0
- data/spec/mock_response/public_keys/x509.pem +21 -0
- data/spec/openid_connect/access_token_spec.rb +23 -23
- data/spec/openid_connect/client/registrar_spec.rb +45 -45
- data/spec/openid_connect/client_spec.rb +12 -12
- data/spec/openid_connect/connect_object_spec.rb +6 -6
- data/spec/openid_connect/debugger/request_filter_spec.rb +1 -1
- data/spec/openid_connect/discovery/principal_spec.rb +5 -5
- data/spec/openid_connect/discovery/provider/config/response_spec.rb +265 -3
- data/spec/openid_connect/discovery/provider/config_spec.rb +11 -0
- data/spec/openid_connect/discovery/provider_spec.rb +3 -3
- data/spec/openid_connect/request_object_spec.rb +36 -36
- data/spec/openid_connect/response_object/id_token_spec.rb +26 -26
- data/spec/openid_connect/response_object/user_info/open_id_spec.rb +7 -7
- data/spec/rack/oauth2/server/authorize/extension/code_and_id_token_and_token_spec.rb +7 -7
- data/spec/rack/oauth2/server/authorize/extension/code_and_id_token_spec.rb +6 -6
- data/spec/rack/oauth2/server/authorize/extension/id_token_and_token_spec.rb +7 -7
- data/spec/rack/oauth2/server/authorize/extension/id_token_spec.rb +6 -6
- data/spec/rack/oauth2/server/token/authorization_code_spec.rb +14 -14
- data/spec/rack/oauth2/server/token/refresh_token_spec.rb +13 -13
- data/spec/spec_helper.rb +1 -3
- metadata +15 -11
@@ -50,7 +50,7 @@ describe OpenIDConnect::ResponseObject::UserInfo::OpenID do
|
|
50
50
|
|
51
51
|
context 'when email is invalid' do
|
52
52
|
let :attributes do
|
53
|
-
{:
|
53
|
+
{email: 'nov@localhost'}
|
54
54
|
end
|
55
55
|
its(:valid?) { should be_false }
|
56
56
|
its(:errors) { should include :email }
|
@@ -82,7 +82,7 @@ describe OpenIDConnect::ResponseObject::UserInfo::OpenID do
|
|
82
82
|
|
83
83
|
context 'when address is blank' do
|
84
84
|
let :attributes do
|
85
|
-
{:
|
85
|
+
{address: {}}
|
86
86
|
end
|
87
87
|
its(:valid?) { should be_false }
|
88
88
|
its(:errors) { should include :address }
|
@@ -92,14 +92,14 @@ describe OpenIDConnect::ResponseObject::UserInfo::OpenID do
|
|
92
92
|
describe '#address=' do
|
93
93
|
context 'when Hash is given' do
|
94
94
|
let :attributes do
|
95
|
-
{:
|
95
|
+
{address: {}}
|
96
96
|
end
|
97
97
|
its(:address) { should be_a OpenIDConnect::ResponseObject::UserInfo::OpenID::Address }
|
98
98
|
end
|
99
99
|
|
100
100
|
context 'when Address is given' do
|
101
101
|
let :attributes do
|
102
|
-
{:
|
102
|
+
{address: OpenIDConnect::ResponseObject::UserInfo::OpenID::Address.new}
|
103
103
|
end
|
104
104
|
its(:address) { should be_a OpenIDConnect::ResponseObject::UserInfo::OpenID::Address }
|
105
105
|
end
|
@@ -108,9 +108,9 @@ describe OpenIDConnect::ResponseObject::UserInfo::OpenID do
|
|
108
108
|
describe '#to_json' do
|
109
109
|
let :attributes do
|
110
110
|
{
|
111
|
-
:
|
112
|
-
:
|
113
|
-
:
|
111
|
+
user_id: 'nov.matake#12345',
|
112
|
+
address: {
|
113
|
+
formatted: 'Tokyo, Japan'
|
114
114
|
}
|
115
115
|
}
|
116
116
|
end
|
@@ -5,16 +5,16 @@ describe Rack::OAuth2::Server::Authorize::Extension::CodeAndIdTokenAndToken do
|
|
5
5
|
let(:request) { Rack::MockRequest.new app }
|
6
6
|
let(:response) { request.get('/?response_type=code%20id_token%20token&client_id=client&state=state') }
|
7
7
|
let(:redirect_uri) { 'http://client.example.com/callback' }
|
8
|
-
let(:bearer_token) { Rack::OAuth2::AccessToken::Bearer.new(:
|
8
|
+
let(:bearer_token) { Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token') }
|
9
9
|
let(:code) { 'authorization_code' }
|
10
10
|
let :id_token do
|
11
11
|
OpenIDConnect::ResponseObject::IdToken.new(
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
12
|
+
iss: 'https://server.example.com',
|
13
|
+
user_id: 'user_id',
|
14
|
+
aud: 'client_id',
|
15
|
+
nonce: 'nonce',
|
16
|
+
exp: 1313424327,
|
17
|
+
iat: 1313420327
|
18
18
|
).to_jwt private_key
|
19
19
|
end
|
20
20
|
|
@@ -8,12 +8,12 @@ describe Rack::OAuth2::Server::Authorize::Extension::CodeAndIdToken do
|
|
8
8
|
let(:code) { 'authorization_code' }
|
9
9
|
let :id_token do
|
10
10
|
OpenIDConnect::ResponseObject::IdToken.new(
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
11
|
+
iss: 'https://server.example.com',
|
12
|
+
user_id: 'user_id',
|
13
|
+
aud: 'client_id',
|
14
|
+
nonce: 'nonce',
|
15
|
+
exp: 1313424327,
|
16
|
+
iat: 1313420327
|
17
17
|
).to_jwt private_key
|
18
18
|
end
|
19
19
|
|
@@ -5,15 +5,15 @@ describe Rack::OAuth2::Server::Authorize::Extension::IdTokenAndToken do
|
|
5
5
|
let(:request) { Rack::MockRequest.new app }
|
6
6
|
let(:response) { request.get('/?response_type=token%20id_token&client_id=client&state=state') }
|
7
7
|
let(:redirect_uri) { 'http://client.example.com/callback' }
|
8
|
-
let(:bearer_token) { Rack::OAuth2::AccessToken::Bearer.new(:
|
8
|
+
let(:bearer_token) { Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token') }
|
9
9
|
let :id_token do
|
10
10
|
OpenIDConnect::ResponseObject::IdToken.new(
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
11
|
+
iss: 'https://server.example.com',
|
12
|
+
user_id: 'user_id',
|
13
|
+
aud: 'client_id',
|
14
|
+
nonce: 'nonce',
|
15
|
+
exp: 1313424327,
|
16
|
+
iat: 1313420327
|
17
17
|
).to_jwt private_key
|
18
18
|
end
|
19
19
|
|
@@ -7,12 +7,12 @@ describe Rack::OAuth2::Server::Authorize::Extension::IdToken do
|
|
7
7
|
let(:redirect_uri) { 'http://client.example.com/callback' }
|
8
8
|
let :id_token do
|
9
9
|
OpenIDConnect::ResponseObject::IdToken.new(
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
10
|
+
iss: 'https://server.example.com',
|
11
|
+
user_id: 'user_id',
|
12
|
+
aud: 'client_id',
|
13
|
+
nonce: 'nonce',
|
14
|
+
exp: 1313424327,
|
15
|
+
iat: 1313420327
|
16
16
|
).to_jwt private_key
|
17
17
|
end
|
18
18
|
|
@@ -4,29 +4,29 @@ describe Rack::OAuth2::Server::Token::AuthorizationCode do
|
|
4
4
|
subject { response }
|
5
5
|
let(:request) { Rack::MockRequest.new app }
|
6
6
|
let :response do
|
7
|
-
request.post('/', :
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
7
|
+
request.post('/', params: {
|
8
|
+
grant_type: 'authorization_code',
|
9
|
+
client_id: 'client_id',
|
10
|
+
code: 'authorization_code',
|
11
|
+
redirect_uri: 'http://client.example.com/callback'
|
12
12
|
})
|
13
13
|
end
|
14
14
|
let :id_token do
|
15
15
|
OpenIDConnect::ResponseObject::IdToken.new(
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
16
|
+
iss: 'https://server.example.com',
|
17
|
+
user_id: 'user_id',
|
18
|
+
aud: 'client_id',
|
19
|
+
exp: 1313424327,
|
20
|
+
iat: 1313420327,
|
21
|
+
nonce: 'nonce',
|
22
|
+
secret: 'secret'
|
23
23
|
).to_jwt private_key
|
24
24
|
end
|
25
25
|
|
26
26
|
context "when id_token is given" do
|
27
27
|
let :app do
|
28
28
|
Rack::OAuth2::Server::Token.new do |request, response|
|
29
|
-
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:
|
29
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token')
|
30
30
|
response.id_token = id_token
|
31
31
|
end
|
32
32
|
end
|
@@ -42,7 +42,7 @@ describe Rack::OAuth2::Server::Token::AuthorizationCode do
|
|
42
42
|
context "otherwise" do
|
43
43
|
let :app do
|
44
44
|
Rack::OAuth2::Server::Token.new do |request, response|
|
45
|
-
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:
|
45
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token')
|
46
46
|
end
|
47
47
|
end
|
48
48
|
its(:status) { should == 200 }
|
@@ -4,28 +4,28 @@ describe Rack::OAuth2::Server::Token::RefreshToken do
|
|
4
4
|
subject { response }
|
5
5
|
let(:request) { Rack::MockRequest.new app }
|
6
6
|
let :response do
|
7
|
-
request.post('/', :
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
7
|
+
request.post('/', params: {
|
8
|
+
grant_type: "refresh_token",
|
9
|
+
client_id: "client_id",
|
10
|
+
refresh_token: "refresh_token"
|
11
11
|
})
|
12
12
|
end
|
13
13
|
let :id_token do
|
14
14
|
OpenIDConnect::ResponseObject::IdToken.new(
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
15
|
+
iss: 'https://server.example.com',
|
16
|
+
user_id: 'user_id',
|
17
|
+
aud: 'client_id',
|
18
|
+
exp: 1313424327,
|
19
|
+
iat: 1313420327,
|
20
|
+
nonce: 'nonce',
|
21
|
+
secret: 'secret'
|
22
22
|
).to_jwt private_key
|
23
23
|
end
|
24
24
|
|
25
25
|
context "when id_token is given" do
|
26
26
|
let :app do
|
27
27
|
Rack::OAuth2::Server::Token.new do |request, response|
|
28
|
-
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:
|
28
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token')
|
29
29
|
response.id_token = id_token
|
30
30
|
end
|
31
31
|
end
|
@@ -41,7 +41,7 @@ describe Rack::OAuth2::Server::Token::RefreshToken do
|
|
41
41
|
context "otherwise" do
|
42
42
|
let :app do
|
43
43
|
Rack::OAuth2::Server::Token.new do |request, response|
|
44
|
-
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:
|
44
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(access_token: 'access_token')
|
45
45
|
end
|
46
46
|
end
|
47
47
|
its(:status) { should == 200 }
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openid_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -172,13 +172,13 @@ dependencies:
|
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0.8'
|
174
174
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
175
|
+
name: rspec
|
176
176
|
requirement: !ruby/object:Gem::Requirement
|
177
177
|
none: false
|
178
178
|
requirements:
|
179
179
|
- - ! '>='
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
181
|
+
version: '2'
|
182
182
|
type: :development
|
183
183
|
prerelease: false
|
184
184
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -186,15 +186,15 @@ dependencies:
|
|
186
186
|
requirements:
|
187
187
|
- - ! '>='
|
188
188
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
189
|
+
version: '2'
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
191
|
+
name: webmock
|
192
192
|
requirement: !ruby/object:Gem::Requirement
|
193
193
|
none: false
|
194
194
|
requirements:
|
195
195
|
- - ! '>='
|
196
196
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
197
|
+
version: 1.6.2
|
198
198
|
type: :development
|
199
199
|
prerelease: false
|
200
200
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -202,15 +202,15 @@ dependencies:
|
|
202
202
|
requirements:
|
203
203
|
- - ! '>='
|
204
204
|
- !ruby/object:Gem::Version
|
205
|
-
version:
|
205
|
+
version: 1.6.2
|
206
206
|
- !ruby/object:Gem::Dependency
|
207
|
-
name:
|
207
|
+
name: cover_me
|
208
208
|
requirement: !ruby/object:Gem::Requirement
|
209
209
|
none: false
|
210
210
|
requirements:
|
211
211
|
- - ! '>='
|
212
212
|
- !ruby/object:Gem::Version
|
213
|
-
version: 1.
|
213
|
+
version: 1.2.0
|
214
214
|
type: :development
|
215
215
|
prerelease: false
|
216
216
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -218,7 +218,7 @@ dependencies:
|
|
218
218
|
requirements:
|
219
219
|
- - ! '>='
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version: 1.
|
221
|
+
version: 1.2.0
|
222
222
|
description: OpenID Connect Server & Client Library
|
223
223
|
email:
|
224
224
|
- nov@matake.jp
|
@@ -285,6 +285,8 @@ files:
|
|
285
285
|
- spec/mock_response/errors/invalid_request.json
|
286
286
|
- spec/mock_response/errors/unknown.json
|
287
287
|
- spec/mock_response/id_token.json
|
288
|
+
- spec/mock_response/public_keys/jwk.json
|
289
|
+
- spec/mock_response/public_keys/x509.pem
|
288
290
|
- spec/mock_response/user_info/openid.json
|
289
291
|
- spec/openid_connect/access_token_spec.rb
|
290
292
|
- spec/openid_connect/client/registrar_spec.rb
|
@@ -351,6 +353,8 @@ test_files:
|
|
351
353
|
- spec/mock_response/errors/invalid_request.json
|
352
354
|
- spec/mock_response/errors/unknown.json
|
353
355
|
- spec/mock_response/id_token.json
|
356
|
+
- spec/mock_response/public_keys/jwk.json
|
357
|
+
- spec/mock_response/public_keys/x509.pem
|
354
358
|
- spec/mock_response/user_info/openid.json
|
355
359
|
- spec/openid_connect/access_token_spec.rb
|
356
360
|
- spec/openid_connect/client/registrar_spec.rb
|