test_openid_connect 0.1.5 → 0.1.9
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/Gemfile.lock +1 -1
- data/lib/omniauth/strategies/test_openid_connect.rb +50 -46
- data/test_openid_connect.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4b398f43e088c3757e8ce589e355b58ab932c723273014ade850c93217d9973
|
4
|
+
data.tar.gz: ce72e257826144230f21f8bcec635d21e228eabd615fc96682875d7705e0f51e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e66652f2b0092cdbfba5b0b50657dfdce1fa69391b6df003ce2eabe6f962e1156efd89aaac87f0a641db787137c87fcef3a408441221f13a3c8c6b07def3540d
|
7
|
+
data.tar.gz: 31a7d846190a604040c789b6d8fb82555bda989f7e51ce0dae6f1017ecb6356964fe2a011a9e3035360ecbb14710f7543ca93c98b50cbdce416bd1c2b57f9b16
|
data/Gemfile.lock
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'omniauth-oauth2'
|
4
4
|
|
5
|
-
module OmniAuth
|
5
|
+
module ::OmniAuth
|
6
6
|
module OpenIDConnect
|
7
7
|
class DiscoveryError < Error; end
|
8
8
|
end
|
@@ -13,9 +13,9 @@ module OmniAuth
|
|
13
13
|
option :scope, "openid"
|
14
14
|
option :discovery, true
|
15
15
|
option :use_userinfo, true
|
16
|
-
option :cache, lambda { |key, &blk| blk.call } # Default no-op cache
|
17
|
-
option :error_handler, lambda { |error, message| nil } # Default no-op handler
|
18
|
-
option :verbose_logger, lambda { |message| nil } # Default no-op handler
|
16
|
+
# option :cache, lambda { |key, &blk| blk.call } # Default no-op cache
|
17
|
+
# option :error_handler, lambda { |error, message| nil } # Default no-op handler
|
18
|
+
# option :verbose_logger, lambda { |message| nil } # Default no-op handler
|
19
19
|
option :passthrough_authorize_options, [:p]
|
20
20
|
option :passthrough_token_options, [:p]
|
21
21
|
|
@@ -27,17 +27,17 @@ module OmniAuth
|
|
27
27
|
userinfo_endpoint: nil,
|
28
28
|
auth_scheme: :basic_auth
|
29
29
|
|
30
|
-
def verbose_log(message)
|
31
|
-
|
32
|
-
end
|
30
|
+
# def verbose_log(message)
|
31
|
+
# options.verbose_logger.call(message)
|
32
|
+
# end
|
33
33
|
|
34
34
|
def discover!
|
35
|
-
verbose_log("Fetching discovery document from #{options[:client_options][:discovery_document]}")
|
36
|
-
discovery_document =
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
35
|
+
# verbose_log("Fetching discovery document from #{options[:client_options][:discovery_document]}")
|
36
|
+
discovery_document = client.request(:get, options[:client_options][:discovery_document], parse: :json).parsed
|
37
|
+
# verbose_log("Discovery document loaded\n\n#{discovery_document.to_yaml}")
|
38
|
+
puts "****************"
|
39
|
+
puts discovery_document
|
40
|
+
puts "****************"
|
41
41
|
discovery_params = {
|
42
42
|
authorize_url: "authorization_endpoint",
|
43
43
|
token_url: "token_endpoint",
|
@@ -54,14 +54,18 @@ module OmniAuth
|
|
54
54
|
options.use_userinfo = false if userinfo_endpoint.nil? || userinfo_endpoint.empty?
|
55
55
|
end
|
56
56
|
|
57
|
-
def request_phase
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
57
|
+
# def request_phase
|
58
|
+
# begin
|
59
|
+
# discover! if options[:discovery]
|
60
|
+
# rescue ::OmniAuth::OpenIDConnect::DiscoveryError => e
|
61
|
+
# fail!(:openid_connect_discovery_error, e)
|
62
|
+
# end
|
63
|
+
|
64
|
+
# super
|
65
|
+
# end
|
63
66
|
|
64
|
-
|
67
|
+
def request_phase
|
68
|
+
redirect client.auth_code.authorize_url({:redirect_uri => callback_url}.merge(options.authorize_params))
|
65
69
|
end
|
66
70
|
|
67
71
|
def authorize_params
|
@@ -88,28 +92,28 @@ module OmniAuth
|
|
88
92
|
super.merge(params)
|
89
93
|
end
|
90
94
|
|
91
|
-
def callback_phase
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
end
|
95
|
+
# def callback_phase
|
96
|
+
# if request.params["error"] && request.params["error_description"]
|
97
|
+
# # verbose_log("Error handled, redirecting\n\n#{response.to_yaml}")
|
98
|
+
# return redirect(response)
|
99
|
+
# end
|
100
|
+
|
101
|
+
# begin
|
102
|
+
# discover! if options[:discovery]
|
103
|
+
|
104
|
+
# oauth2_callback_phase = super
|
105
|
+
# return oauth2_callback_phase if env['omniauth.error']
|
106
|
+
|
107
|
+
# if id_token_info["nonce"].nil? || id_token_info["nonce"].empty? || id_token_info["nonce"] != session.delete("omniauth.nonce")
|
108
|
+
# return fail!(:csrf_detected, CallbackError.new(:csrf_detected, "CSRF detected"))
|
109
|
+
# end
|
110
|
+
# oauth2_callback_phase
|
111
|
+
# rescue ::OmniAuth::OpenIDConnect::DiscoveryError => e
|
112
|
+
# fail!(:openid_connect_discovery_error, e)
|
113
|
+
# rescue JWT::DecodeError => e
|
114
|
+
# fail!(:jwt_decode_failed, e)
|
115
|
+
# end
|
116
|
+
# end
|
113
117
|
|
114
118
|
def id_token_info
|
115
119
|
# Verify the claims in the JWT
|
@@ -117,7 +121,7 @@ module OmniAuth
|
|
117
121
|
# token was acquired via a direct server-server connection to the issuer
|
118
122
|
@id_token_info ||= begin
|
119
123
|
decoded = JWT.decode(access_token['id_token'], nil, false).first
|
120
|
-
verbose_log("Loaded JWT\n\n#{decoded.to_yaml}")
|
124
|
+
# verbose_log("Loaded JWT\n\n#{decoded.to_yaml}")
|
121
125
|
JWT::Verify.verify_claims(decoded,
|
122
126
|
verify_iss: true,
|
123
127
|
iss: options[:client_options][:site],
|
@@ -129,7 +133,7 @@ module OmniAuth
|
|
129
133
|
verify_iat: false,
|
130
134
|
verify_jti: false
|
131
135
|
)
|
132
|
-
verbose_log("Verified JWT\n\n#{decoded.to_yaml}")
|
136
|
+
# verbose_log("Verified JWT\n\n#{decoded.to_yaml}")
|
133
137
|
|
134
138
|
decoded
|
135
139
|
end
|
@@ -138,7 +142,7 @@ module OmniAuth
|
|
138
142
|
def userinfo_response
|
139
143
|
@raw_info ||= begin
|
140
144
|
info = access_token.get(options[:client_options][:userinfo_endpoint]).parsed
|
141
|
-
verbose_log("Fetched userinfo response\n\n#{info.to_yaml}")
|
145
|
+
# verbose_log("Fetched userinfo response\n\n#{info.to_yaml}")
|
142
146
|
info
|
143
147
|
end
|
144
148
|
|
@@ -202,7 +206,7 @@ end
|
|
202
206
|
|
203
207
|
OmniAuth.config.add_camelization 'oauth2', 'OpenIDConnect'
|
204
208
|
|
205
|
-
module OmniAuth
|
209
|
+
module ::OmniAuth
|
206
210
|
module Strategies
|
207
211
|
autoload :OpenIDConnect, "lib/omniauth/test_openid_connect.rb"
|
208
212
|
end
|
data/test_openid_connect.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_openid_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Burak Akça
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'desc desc desc desc '
|
14
14
|
email:
|