omniauth-nitro-id 1.0.0 → 1.1.1
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/.github/workflows/omniauth-nitro-id.yml +13 -0
- data/.gitignore +0 -1
- data/doc/dependency_decisions.yml +3 -0
- data/docs/CHANGELOG.md +15 -1
- data/lib/extensions/discovery.rb +24 -0
- data/lib/omniauth/nitro_id/version.rb +1 -1
- data/lib/omniauth/strategies/base_strategy.rb +55 -0
- data/lib/omniauth/strategies/nitro_id.rb +5 -9
- data/lib/omniauth/strategies/tempo_id.rb +5 -9
- data/omniauth-nitro-id.gemspec +2 -0
- metadata +34 -3
- data/.github/workflows/ci.yml +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d597ab3b4ec465274903767494f7261a93cb09afb365618dd6681752ee8ba0c0
|
4
|
+
data.tar.gz: dbd6d14de7b47202b908d9fc67919832ad75d58c11ef971c3437b2c4c2ac9629
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82db598358577adbdaccc0346501e8fd00a0dd3e24e09591b9dc51eb1e8e2d9b75a575e3115604c0916ff27bc5aed46a98df08e83de9e15daa5de7cbc358e3ce
|
7
|
+
data.tar.gz: 5f0a78eeb7a3660ff3688b35d6324c9a0c4f39e2724084259b5ae41038299c56794b507fc585f307ef42386a71f67eca5723d3f013053b8522f58c900b499b0a
|
data/.gitignore
CHANGED
data/docs/CHANGELOG.md
CHANGED
@@ -7,11 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [1.1.1] - 2023-03-06
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
* Add `omniauth-rails_csrf_protection` dependency. PR [#12](https://github.com/powerhome/omniauth-nitro-id/pull/12)
|
15
|
+
|
16
|
+
## [1.1.0] - 2022-12-14
|
17
|
+
|
18
|
+
### Added
|
19
|
+
|
20
|
+
* Add support for `id_token_hint`. PR [#8](https://github.com/powerhome/omniauth-nitro-id/pull/8)
|
21
|
+
|
10
22
|
## [1.0.0] - 2022-12-05
|
11
23
|
|
12
24
|
### Added
|
13
25
|
|
14
26
|
* Initial release
|
15
27
|
|
16
|
-
[Unreleased]: https://github.com/powerhome/omniauth-nitro-id/compare/v1.
|
28
|
+
[Unreleased]: https://github.com/powerhome/omniauth-nitro-id/compare/v1.1.1...HEAD
|
29
|
+
[1.1.1]: https://github.com/powerhome/omniauth-nitro-id/releases/tag/v1.1.1
|
30
|
+
[1.1.0]: https://github.com/powerhome/omniauth-nitro-id/releases/tag/v1.1.0
|
17
31
|
[1.0.0]: https://github.com/powerhome/omniauth-nitro-id/releases/tag/v1.0.0
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Extensions
|
4
|
+
module Discovery
|
5
|
+
Module.new do
|
6
|
+
# Monkey patch allow HTTP instead of forcing HTTPS for discovery.
|
7
|
+
|
8
|
+
attr_reader :scheme
|
9
|
+
|
10
|
+
def initialize(uri)
|
11
|
+
@scheme = uri.scheme
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
15
|
+
def endpoint
|
16
|
+
URI::Generic.build(scheme: scheme, host: host, port: port, path: path)
|
17
|
+
rescue URI::Error => e
|
18
|
+
raise SWD::Exception, e.message
|
19
|
+
end
|
20
|
+
|
21
|
+
prepend_features(::OpenIDConnect::Discovery::Provider::Config::Resource)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "omniauth_openid_connect"
|
4
|
+
require_relative "../../extensions/discovery"
|
5
|
+
|
6
|
+
module OmniAuth
|
7
|
+
module Strategies
|
8
|
+
class BaseStrategy < OmniAuth::Strategies::OpenIDConnect
|
9
|
+
def public_key
|
10
|
+
@public_key ||= if options.discovery
|
11
|
+
config.jwks
|
12
|
+
elsif key_or_secret
|
13
|
+
key_or_secret
|
14
|
+
elsif client_options.jwks_uri
|
15
|
+
fetch_key
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def fetch_key
|
22
|
+
@fetch_key ||= parse_jwk_key(::OpenIDConnect.http_client.get_content(client_options.jwks_uri))
|
23
|
+
end
|
24
|
+
|
25
|
+
def key_or_secret
|
26
|
+
@key_or_secret ||=
|
27
|
+
case options.client_signing_alg&.to_sym
|
28
|
+
when :HS256, :HS384, :HS512
|
29
|
+
client_options.secret
|
30
|
+
when :RS256, :RS384, :RS512
|
31
|
+
parse_key
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def encoded_post_logout_redirect_uri
|
36
|
+
return unless options.post_logout_redirect_uri
|
37
|
+
|
38
|
+
query = {
|
39
|
+
post_logout_redirect_uri: options.post_logout_redirect_uri,
|
40
|
+
}
|
41
|
+
query = query.merge({ id_token_hint: params["id_token_hint"] }) if params["id_token_hint"]
|
42
|
+
|
43
|
+
URI.encode_www_form(query)
|
44
|
+
end
|
45
|
+
|
46
|
+
def parse_key
|
47
|
+
if options.client_jwk_signing_key
|
48
|
+
parse_jwk_key(options.client_jwk_signing_key)
|
49
|
+
elsif options.client_x509_signing_key
|
50
|
+
parse_x509_key(options.client_x509_signing_key)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -1,18 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "base_strategy"
|
4
4
|
|
5
5
|
module OmniAuth
|
6
6
|
module Strategies
|
7
|
-
class NitroId <
|
8
|
-
|
9
|
-
DEFAULT_ISSUER = "https://id.powerhrg.com/"
|
10
|
-
DEFAULT_HOST = "id.powerhrg.com"
|
11
|
-
|
12
|
-
option :name, DEFAULT_STRATEGY_NAME
|
7
|
+
class NitroId < BaseStrategy
|
8
|
+
option :name, "nitro_id"
|
13
9
|
option :discovery, true
|
14
|
-
option :issuer,
|
15
|
-
option :client_options, host:
|
10
|
+
option :issuer, "https://id.powerhrg.com/"
|
11
|
+
option :client_options, host: "id.powerhrg.com"
|
16
12
|
end
|
17
13
|
end
|
18
14
|
end
|
@@ -1,18 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "base_strategy"
|
4
4
|
|
5
5
|
module OmniAuth
|
6
6
|
module Strategies
|
7
|
-
class TempoId <
|
8
|
-
|
9
|
-
DEFAULT_ISSUER = "https://id.streamfinancial.io/"
|
10
|
-
DEFAULT_HOST = "id.streamfinancial.io"
|
11
|
-
|
12
|
-
option :name, DEFAULT_STRATEGY_NAME
|
7
|
+
class TempoId < BaseStrategy
|
8
|
+
option :name, "tempo_id"
|
13
9
|
option :discovery, true
|
14
|
-
option :issuer,
|
15
|
-
option :client_options, host:
|
10
|
+
option :issuer, "https://id.streamfinancial.io/"
|
11
|
+
option :client_options, host: "id.streamfinancial.io"
|
16
12
|
end
|
17
13
|
end
|
18
14
|
end
|
data/omniauth-nitro-id.gemspec
CHANGED
@@ -18,9 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_dependency "omniauth_openid_connect", "~> 0.4.0"
|
21
|
+
spec.add_dependency "omniauth-rails_csrf_protection", "1.0.1"
|
21
22
|
|
22
23
|
spec.add_development_dependency "bundler"
|
23
24
|
spec.add_development_dependency "guard-rspec"
|
25
|
+
spec.add_development_dependency "license_finder", ">= 7.0"
|
24
26
|
spec.add_development_dependency "net-smtp"
|
25
27
|
spec.add_development_dependency "pry"
|
26
28
|
spec.add_development_dependency "rake", "13.0.6"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-nitro-id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Greer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth_openid_connect
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.4.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: omniauth-rails_csrf_protection
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: license_finder
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '7.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '7.0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: net-smtp
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,7 +172,7 @@ extensions: []
|
|
144
172
|
extra_rdoc_files: []
|
145
173
|
files:
|
146
174
|
- ".github/CODEOWNERS"
|
147
|
-
- ".github/workflows/
|
175
|
+
- ".github/workflows/omniauth-nitro-id.yml"
|
148
176
|
- ".gitignore"
|
149
177
|
- ".rspec"
|
150
178
|
- ".rubocop.yml"
|
@@ -154,11 +182,14 @@ files:
|
|
154
182
|
- Rakefile
|
155
183
|
- bin/console
|
156
184
|
- bin/setup
|
185
|
+
- doc/dependency_decisions.yml
|
157
186
|
- docs/CHANGELOG.md
|
158
187
|
- docs/README.md
|
188
|
+
- lib/extensions/discovery.rb
|
159
189
|
- lib/omniauth-nitro-id.rb
|
160
190
|
- lib/omniauth/nitro_id.rb
|
161
191
|
- lib/omniauth/nitro_id/version.rb
|
192
|
+
- lib/omniauth/strategies/base_strategy.rb
|
162
193
|
- lib/omniauth/strategies/nitro_id.rb
|
163
194
|
- lib/omniauth/strategies/tempo_id.rb
|
164
195
|
- mkdocs.yml
|
data/.github/workflows/ci.yml
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
name: CI
|
2
|
-
|
3
|
-
on: push
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
test:
|
7
|
-
name: Tests
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
strategy:
|
10
|
-
fail-fast: false
|
11
|
-
matrix:
|
12
|
-
ruby:
|
13
|
-
- "2.7.4"
|
14
|
-
- "3.1.2"
|
15
|
-
steps:
|
16
|
-
- uses: actions/checkout@v3
|
17
|
-
- uses: ruby/setup-ruby@v1
|
18
|
-
with:
|
19
|
-
ruby-version: ${{ matrix.ruby }}
|
20
|
-
bundler-cache: true
|
21
|
-
- name: Run tests
|
22
|
-
run: bundle exec rake spec
|
23
|
-
lint:
|
24
|
-
name: Lint Ruby
|
25
|
-
runs-on: ubuntu-latest
|
26
|
-
steps:
|
27
|
-
- uses: actions/checkout@v3
|
28
|
-
- uses: ruby/setup-ruby@v1
|
29
|
-
with:
|
30
|
-
ruby-version: 3.1.2
|
31
|
-
- name: Bundle
|
32
|
-
run: bundle
|
33
|
-
- name: Run Rubocop
|
34
|
-
run: bundle exec rubocop
|