openid_connect 0.0.7 → 0.0.8
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.lock +1 -1
- data/VERSION +1 -1
- data/lib/openid_connect.rb +1 -1
- data/lib/rack/oauth2/server/id_token_support.rb +21 -0
- data/spec/rack/oauth2/server/authorize/code_and_token_spec.rb +1 -2
- data/spec/rack/oauth2/server/authorize/token_spec.rb +1 -2
- data/spec/rack/oauth2/server/token/authorization_code_spec.rb +44 -0
- data/spec/rack/oauth2/server/token/refresh_token_spec.rb +43 -0
- metadata +6 -2
- data/lib/rack/oauth2/server/authorize/token_with_id_token.rb +0 -10
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/lib/openid_connect.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module IdTokenSupport
|
2
|
+
def self.included(klass)
|
3
|
+
klass.send :attr_optional, :id_token
|
4
|
+
klass.class_eval do
|
5
|
+
def protocol_params_with_id_token
|
6
|
+
protocol_params_without_id_token.merge(
|
7
|
+
:id_token => id_token.try(:to_jwt)
|
8
|
+
)
|
9
|
+
end
|
10
|
+
alias_method_chain :protocol_params, :id_token
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Rack::OAuth2::Server::Token::Response
|
16
|
+
include TokenWithIdToken
|
17
|
+
end
|
18
|
+
|
19
|
+
class Rack::OAuth2::Server::Authorize::Token::Response
|
20
|
+
include TokenWithIdToken
|
21
|
+
end
|
@@ -2,6 +2,7 @@ require 'spec_helper.rb'
|
|
2
2
|
require 'rack/oauth2/server/authorize/extension/code_and_token'
|
3
3
|
|
4
4
|
describe Rack::OAuth2::Server::Authorize::Extension::CodeAndToken do
|
5
|
+
subject { response }
|
5
6
|
let(:request) { Rack::MockRequest.new app }
|
6
7
|
let(:response) { request.get("/?response_type=code%20token&client_id=client") }
|
7
8
|
let(:redirect_uri) { 'http://client.example.com/callback' }
|
@@ -17,7 +18,6 @@ describe Rack::OAuth2::Server::Authorize::Extension::CodeAndToken do
|
|
17
18
|
end
|
18
19
|
|
19
20
|
context "when id_token is given" do
|
20
|
-
subject { response }
|
21
21
|
let :app do
|
22
22
|
Rack::OAuth2::Server::Authorize.new do |request, response|
|
23
23
|
response.redirect_uri = redirect_uri
|
@@ -32,7 +32,6 @@ describe Rack::OAuth2::Server::Authorize::Extension::CodeAndToken do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
context "otherwise" do
|
35
|
-
subject { response }
|
36
35
|
let :app do
|
37
36
|
Rack::OAuth2::Server::Authorize.new do |request, response|
|
38
37
|
response.redirect_uri = redirect_uri
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper.rb'
|
2
2
|
|
3
3
|
describe Rack::OAuth2::Server::Authorize::Token do
|
4
|
+
subject { response }
|
4
5
|
let(:request) { Rack::MockRequest.new app }
|
5
6
|
let(:response) { request.get("/?response_type=token&client_id=client") }
|
6
7
|
let(:redirect_uri) { 'http://client.example.com/callback' }
|
@@ -16,7 +17,6 @@ describe Rack::OAuth2::Server::Authorize::Token do
|
|
16
17
|
end
|
17
18
|
|
18
19
|
context "when id_token is given" do
|
19
|
-
subject { response }
|
20
20
|
let :app do
|
21
21
|
Rack::OAuth2::Server::Authorize.new do |request, response|
|
22
22
|
response.redirect_uri = redirect_uri
|
@@ -30,7 +30,6 @@ describe Rack::OAuth2::Server::Authorize::Token do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
context "otherwise" do
|
33
|
-
subject { response }
|
34
33
|
let :app do
|
35
34
|
Rack::OAuth2::Server::Authorize.new do |request, response|
|
36
35
|
response.redirect_uri = redirect_uri
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper.rb'
|
2
|
+
|
3
|
+
describe Rack::OAuth2::Server::Token::AuthorizationCode do
|
4
|
+
subject { response }
|
5
|
+
let(:request) { Rack::MockRequest.new app }
|
6
|
+
let :response do
|
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
|
+
})
|
13
|
+
end
|
14
|
+
let :id_token do
|
15
|
+
OpenIDConnect::ResponseObject::IdToken.new(
|
16
|
+
:iss => 'https://server.example.com',
|
17
|
+
:user_id => 'user_id',
|
18
|
+
:aud => 'client_id',
|
19
|
+
:exp => 1313424327,
|
20
|
+
:secret => 'secret'
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
context "when id_token is given" do
|
25
|
+
let :app do
|
26
|
+
Rack::OAuth2::Server::Token.new do |request, response|
|
27
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:access_token => 'access_token')
|
28
|
+
response.id_token = id_token
|
29
|
+
end
|
30
|
+
end
|
31
|
+
its(:status) { should == 200 }
|
32
|
+
its(:body) { should include "\"id_token\":\"#{id_token.to_jwt}\"" }
|
33
|
+
end
|
34
|
+
|
35
|
+
context "otherwise" do
|
36
|
+
let :app do
|
37
|
+
Rack::OAuth2::Server::Token.new do |request, response|
|
38
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:access_token => 'access_token')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
its(:status) { should == 200 }
|
42
|
+
its(:body) { should_not include "id_token" }
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper.rb'
|
2
|
+
|
3
|
+
describe Rack::OAuth2::Server::Token::RefreshToken do
|
4
|
+
subject { response }
|
5
|
+
let(:request) { Rack::MockRequest.new app }
|
6
|
+
let :response do
|
7
|
+
request.post('/', :params => {
|
8
|
+
:grant_type => "refresh_token",
|
9
|
+
:client_id => "client_id",
|
10
|
+
:refresh_token => "refresh_token"
|
11
|
+
})
|
12
|
+
end
|
13
|
+
let :id_token do
|
14
|
+
OpenIDConnect::ResponseObject::IdToken.new(
|
15
|
+
:iss => 'https://server.example.com',
|
16
|
+
:user_id => 'user_id',
|
17
|
+
:aud => 'client_id',
|
18
|
+
:exp => 1313424327,
|
19
|
+
:secret => 'secret'
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
context "when id_token is given" do
|
24
|
+
let :app do
|
25
|
+
Rack::OAuth2::Server::Token.new do |request, response|
|
26
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:access_token => 'access_token')
|
27
|
+
response.id_token = id_token
|
28
|
+
end
|
29
|
+
end
|
30
|
+
its(:status) { should == 200 }
|
31
|
+
its(:body) { should include "\"id_token\":\"#{id_token.to_jwt}\"" }
|
32
|
+
end
|
33
|
+
|
34
|
+
context "otherwise" do
|
35
|
+
let :app do
|
36
|
+
Rack::OAuth2::Server::Token.new do |request, response|
|
37
|
+
response.access_token = Rack::OAuth2::AccessToken::Bearer.new(:access_token => 'access_token')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
its(:status) { should == 200 }
|
41
|
+
its(:body) { should_not include "id_token" }
|
42
|
+
end
|
43
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: openid_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- nov matake
|
@@ -171,7 +171,7 @@ files:
|
|
171
171
|
- lib/openid_connect/response_object/user_info.rb
|
172
172
|
- lib/openid_connect/response_object/user_info/open_id.rb
|
173
173
|
- lib/openid_connect/response_object/user_info/open_id/address.rb
|
174
|
-
- lib/rack/oauth2/server/
|
174
|
+
- lib/rack/oauth2/server/id_token_support.rb
|
175
175
|
- openid_connect.gemspec
|
176
176
|
- spec/helpers/webmock_helper.rb
|
177
177
|
- spec/mock_response/access_token/bearer.json
|
@@ -191,6 +191,8 @@ files:
|
|
191
191
|
- spec/openid_connect/response_object_spec.rb
|
192
192
|
- spec/rack/oauth2/server/authorize/code_and_token_spec.rb
|
193
193
|
- spec/rack/oauth2/server/authorize/token_spec.rb
|
194
|
+
- spec/rack/oauth2/server/token/authorization_code_spec.rb
|
195
|
+
- spec/rack/oauth2/server/token/refresh_token_spec.rb
|
194
196
|
- spec/spec_helper.rb
|
195
197
|
homepage: https://github.com/nov/openid_connect
|
196
198
|
licenses: []
|
@@ -238,4 +240,6 @@ test_files:
|
|
238
240
|
- spec/openid_connect/response_object_spec.rb
|
239
241
|
- spec/rack/oauth2/server/authorize/code_and_token_spec.rb
|
240
242
|
- spec/rack/oauth2/server/authorize/token_spec.rb
|
243
|
+
- spec/rack/oauth2/server/token/authorization_code_spec.rb
|
244
|
+
- spec/rack/oauth2/server/token/refresh_token_spec.rb
|
241
245
|
- spec/spec_helper.rb
|
@@ -1,10 +0,0 @@
|
|
1
|
-
class Rack::OAuth2::Server::Authorize::Token::Response
|
2
|
-
attr_optional :id_token
|
3
|
-
|
4
|
-
def protocol_params_with_id_token
|
5
|
-
protocol_params_without_id_token.merge(
|
6
|
-
:id_token => id_token.try(:to_jwt)
|
7
|
-
)
|
8
|
-
end
|
9
|
-
alias_method_chain :protocol_params, :id_token
|
10
|
-
end
|