omniauth-auth0 3.1.0 → 3.2.0
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/.devcontainer/devcontainer.json +1 -1
- data/.github/CODEOWNERS +1 -1
- data/.github/ISSUE_TEMPLATE/Bug Report.yml +76 -0
- data/.github/ISSUE_TEMPLATE/Feature Request.yml +53 -0
- data/.github/ISSUE_TEMPLATE/config.yml +2 -2
- data/.github/actions/get-prerelease/action.yml +30 -0
- data/.github/actions/get-release-notes/action.yml +42 -0
- data/.github/actions/get-version/action.yml +21 -0
- data/.github/actions/release-create/action.yml +47 -0
- data/.github/actions/rl-scanner/action.yml +71 -0
- data/.github/actions/rubygems-publish/action.yml +30 -0
- data/.github/actions/setup/action.yml +28 -0
- data/.github/actions/tag-exists/action.yml +36 -0
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/codeql.yml +53 -0
- data/.github/workflows/matrix.json +7 -0
- data/.github/workflows/publish.yml +33 -0
- data/.github/workflows/rl-scanner.yml +65 -0
- data/.github/workflows/ruby-release.yml +72 -0
- data/.github/workflows/snyk.yml +40 -0
- data/.github/workflows/test.yml +69 -0
- data/.shiprc +2 -1
- data/.version +1 -0
- data/CHANGELOG.md +20 -0
- data/EXAMPLES.md +19 -5
- data/Gemfile +4 -5
- data/Gemfile.lock +128 -91
- data/README.md +42 -1
- data/lib/omniauth/auth0/jwt_token.rb +38 -0
- data/lib/omniauth/auth0/jwt_validator.rb +19 -3
- data/lib/omniauth/strategies/auth0.rb +48 -14
- data/lib/omniauth-auth0/version.rb +1 -1
- data/omniauth-auth0.gemspec +1 -0
- data/spec/omniauth/auth0/jwt_token_spec.rb +87 -0
- data/spec/omniauth/auth0/jwt_validator_spec.rb +109 -31
- data/spec/omniauth/strategies/auth0_spec.rb +478 -230
- data/spec/spec_helper.rb +1 -0
- metadata +39 -14
- data/.circleci/config.yml +0 -63
- data/.gemrelease +0 -2
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -39
- data/.github/ISSUE_TEMPLATE/report_a_bug.md +0 -55
- data/.github/workflows/semgrep.yml +0 -24
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Create Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
ruby-version:
|
|
7
|
+
required: true
|
|
8
|
+
type: string
|
|
9
|
+
secrets:
|
|
10
|
+
github-token:
|
|
11
|
+
required: true
|
|
12
|
+
rubygems-token:
|
|
13
|
+
required: true
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
release:
|
|
17
|
+
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.merged && startsWith(github.event.pull_request.head.ref, 'release/'))
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
environment: release
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
# Checkout the code
|
|
23
|
+
- uses: actions/checkout@v6
|
|
24
|
+
with:
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
# Get the version from the branch name
|
|
28
|
+
- id: get_version
|
|
29
|
+
uses: ./.github/actions/get-version
|
|
30
|
+
|
|
31
|
+
# Get the prerelease flag from the branch name
|
|
32
|
+
- id: get_prerelease
|
|
33
|
+
uses: ./.github/actions/get-prerelease
|
|
34
|
+
with:
|
|
35
|
+
version: ${{ steps.get_version.outputs.version }}
|
|
36
|
+
|
|
37
|
+
# Get the release notes
|
|
38
|
+
# This will expose the release notes as env.RELEASE_NOTES
|
|
39
|
+
- id: get_release_notes
|
|
40
|
+
uses: ./.github/actions/get-release-notes
|
|
41
|
+
with:
|
|
42
|
+
token: ${{ secrets.github-token }}
|
|
43
|
+
version: ${{ steps.get_version.outputs.version }}
|
|
44
|
+
repo_owner: ${{ github.repository_owner }}
|
|
45
|
+
repo_name: ${{ github.event.repository.name }}
|
|
46
|
+
|
|
47
|
+
# Check if the tag already exists
|
|
48
|
+
- id: tag_exists
|
|
49
|
+
uses: ./.github/actions/tag-exists
|
|
50
|
+
with:
|
|
51
|
+
tag: ${{ steps.get_version.outputs.version }}
|
|
52
|
+
token: ${{ secrets.github-token }}
|
|
53
|
+
|
|
54
|
+
# If the tag already exists, exit with an error
|
|
55
|
+
- if: steps.tag_exists.outputs.exists == 'true'
|
|
56
|
+
run: exit 1
|
|
57
|
+
|
|
58
|
+
# Publish the release to our package manager
|
|
59
|
+
- uses: ./.github/actions/rubygems-publish
|
|
60
|
+
with:
|
|
61
|
+
ruby-version: ${{ inputs.ruby-version }}
|
|
62
|
+
rubygems-token: ${{ secrets.rubygems-token }}
|
|
63
|
+
|
|
64
|
+
# Create a release for the tag
|
|
65
|
+
- uses: ./.github/actions/release-create
|
|
66
|
+
with:
|
|
67
|
+
token: ${{ secrets.github-token }}
|
|
68
|
+
name: ${{ steps.get_version.outputs.version }}
|
|
69
|
+
body: ${{ steps.get_release_notes.outputs.release-notes }}
|
|
70
|
+
tag: ${{ steps.get_version.outputs.version }}
|
|
71
|
+
commit: ${{ github.sha }}
|
|
72
|
+
prerelease: ${{ steps.get_prerelease.outputs.prerelease }}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Snyk
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
merge_group:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
pull_request:
|
|
7
|
+
types:
|
|
8
|
+
- opened
|
|
9
|
+
- synchronize
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- master
|
|
13
|
+
schedule:
|
|
14
|
+
- cron: "30 0 1,15 * *"
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
|
|
19
|
+
concurrency:
|
|
20
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
21
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
check:
|
|
25
|
+
name: Check for Vulnerabilities
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- if: github.actor == 'dependabot[bot]' || github.event_name == 'merge_group'
|
|
30
|
+
run: exit 0 # Skip unnecessary test runs for dependabot and merge queues. Artifically flag as successful, as this is a required check for branch protection.
|
|
31
|
+
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
with:
|
|
34
|
+
ref: ${{ github.event.pull_request.head.sha || github.ref }}
|
|
35
|
+
|
|
36
|
+
- run: npm install -g snyk
|
|
37
|
+
|
|
38
|
+
- run: snyk test
|
|
39
|
+
env:
|
|
40
|
+
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: Build and Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
merge_group:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
pull_request:
|
|
7
|
+
branches:
|
|
8
|
+
- master
|
|
9
|
+
push:
|
|
10
|
+
branches:
|
|
11
|
+
- master
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
16
|
+
concurrency:
|
|
17
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
18
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
|
19
|
+
|
|
20
|
+
env:
|
|
21
|
+
CACHE_KEY: "${{ github.ref }}-${{ github.run_id }}-${{ github.run_attempt }}"
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
configure:
|
|
25
|
+
name: Configure Build Matrix
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
|
|
28
|
+
outputs:
|
|
29
|
+
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
with:
|
|
34
|
+
ref: ${{ github.event.pull_request.head.sha || github.ref }}
|
|
35
|
+
|
|
36
|
+
- id: set-matrix
|
|
37
|
+
run: echo "matrix=$(jq -c . < ./.github/workflows/matrix.json)" >> $GITHUB_OUTPUT
|
|
38
|
+
|
|
39
|
+
unit:
|
|
40
|
+
needs: configure
|
|
41
|
+
|
|
42
|
+
name: Run Unit Tests
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
|
|
45
|
+
strategy:
|
|
46
|
+
matrix: ${{ fromJson(needs.configure.outputs.matrix) }}
|
|
47
|
+
|
|
48
|
+
env:
|
|
49
|
+
DOMAIN: example.auth0.dev
|
|
50
|
+
CLIENT_ID: example-client
|
|
51
|
+
CLIENT_SECRET: example-secret
|
|
52
|
+
MASTER_JWT: example-jwt
|
|
53
|
+
BUNDLE_PATH: vendor/bundle
|
|
54
|
+
|
|
55
|
+
steps:
|
|
56
|
+
- name: Checkout code
|
|
57
|
+
uses: actions/checkout@v4
|
|
58
|
+
|
|
59
|
+
- name: Configure Ruby
|
|
60
|
+
uses: ./.github/actions/setup
|
|
61
|
+
with:
|
|
62
|
+
ruby: ${{ matrix.ruby }}
|
|
63
|
+
|
|
64
|
+
- name: Run tests
|
|
65
|
+
run: bundle exec rake spec
|
|
66
|
+
|
|
67
|
+
- name: Upload coverage
|
|
68
|
+
if: matrix.ruby == '3.2'
|
|
69
|
+
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # pin@3.1.4
|
data/.shiprc
CHANGED
data/.version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
v3.2.0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [v3.2.0](https://github.com/auth0/omniauth-auth0/tree/v3.2.0) (2026-05-27)
|
|
4
|
+
[Full Changelog](https://github.com/auth0/omniauth-auth0/compare/v3.1.1...v3.2.0)
|
|
5
|
+
|
|
6
|
+
**Added**
|
|
7
|
+
- Add support for client assertion signing key authentication [\#203](https://github.com/auth0/omniauth-auth0/pull/203) ([kaczowkad](https://github.com/kaczowkad))
|
|
8
|
+
|
|
9
|
+
**Dependency Bumps**
|
|
10
|
+
- Bump faraday from 2.7.10 to 2.14.1 [\#215](https://github.com/auth0/omniauth-auth0/pull/215) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
11
|
+
- Bump rack from 2.2.7 to 2.2.23 [\#217](https://github.com/auth0/omniauth-auth0/pull/217) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
12
|
+
- Bump rexml from 3.2.5 to 3.3.9 [\#206](https://github.com/auth0/omniauth-auth0/pull/206) ([arpit-jn](https://github.com/arpit-jn))
|
|
13
|
+
|
|
14
|
+
## [v3.1.1](https://github.com/auth0/omniauth-auth0/tree/v3.1.1) (2023-03-01)
|
|
15
|
+
[Full Changelog](https://github.com/auth0/omniauth-auth0/compare/v3.1.0...v3.1.1)
|
|
16
|
+
|
|
17
|
+
**Added**
|
|
18
|
+
- [SDK-4410] Support Organization Name in JWT validation [\#184](https://github.com/auth0/omniauth-auth0/pull/184) ([stevehobbsdev](https://github.com/stevehobbsdev))
|
|
19
|
+
|
|
20
|
+
**Fixed**
|
|
21
|
+
- fix: upgrade to Sinatra 3 and use Rack::Session::Cookie in tests [\#165](https://github.com/auth0/omniauth-auth0/pull/165) ([stevehobbsdev](https://github.com/stevehobbsdev))
|
|
22
|
+
|
|
3
23
|
## [v3.1.0](https://github.com/auth0/omniauth-auth0/tree/v3.1.0) (2022-11-04)
|
|
4
24
|
|
|
5
25
|
[Full Changelog](https://github.com/auth0/omniauth-auth0/compare/v3.0.0...v3.1.0)
|
data/EXAMPLES.md
CHANGED
|
@@ -79,6 +79,7 @@ In some scenarios, you may need to pass specific query parameters to `/authorize
|
|
|
79
79
|
- `screen_hint` (only relevant to New Universal Login Experience)
|
|
80
80
|
- `organization`
|
|
81
81
|
- `invitation`
|
|
82
|
+
- `ui_locales` (only relevant to New Universal Login Experience)
|
|
82
83
|
|
|
83
84
|
Simply pass these query parameters to your OmniAuth redirect endpoint to enable their behavior.
|
|
84
85
|
|
|
@@ -124,25 +125,38 @@ When passing `openid` to the scope and `organization` to the authorize params, y
|
|
|
124
125
|
|
|
125
126
|
### Validating Organizations when using Organization Login Prompt
|
|
126
127
|
|
|
127
|
-
When Organization login prompt is enabled on your application, but you haven't specified an Organization for the application's authorization endpoint,
|
|
128
|
+
When Organization login prompt is enabled on your application, but you haven't specified an Organization for the application's authorization endpoint, `org_id` or `org_name` claims will be present on the ID and access tokens, and should be validated to ensure that the value received is expected or known.
|
|
128
129
|
|
|
129
130
|
Normally, validating the issuer would be enough to ensure that the token was issued by Auth0, and this check is performed by the SDK. However, in the case of organizations, additional checks should be made so that the organization within an Auth0 tenant is expected.
|
|
130
131
|
|
|
131
|
-
In particular, the `org_id`
|
|
132
|
+
In particular, the `org_id` and `org_name` claims should be checked to ensure it is a value that is already known to the application. This could be validated against a known list of organization IDs, or perhaps checked in conjunction with the current request URL. e.g. the sub-domain may hint at what organization should be used to validate the ID Token. For `org_id`, this should be a **case-sensitive, exact match check**. For `org_name`, this should be a **case-insentive check**.
|
|
133
|
+
|
|
134
|
+
The decision to validate the `org_id` or `org_name` claim is determined by the expected organization ID or name having an `org_` prefix.
|
|
132
135
|
|
|
133
136
|
Here is an example using it in your `callback` method
|
|
134
137
|
|
|
135
138
|
```ruby
|
|
136
|
-
|
|
137
|
-
|
|
139
|
+
def callback
|
|
140
|
+
claims = request.env['omniauth.auth']['extra']['raw_info']
|
|
141
|
+
|
|
142
|
+
validate_as_id = expected_org.start_with?('org_')
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
if validate_as_id
|
|
145
|
+
if claims["org_id"] && claims["org_id"] !== expected_org
|
|
146
|
+
redirect_to '/unauthorized', status: 401
|
|
147
|
+
else
|
|
148
|
+
session[:userinfo] = claims
|
|
149
|
+
redirect_to '/dashboard'
|
|
150
|
+
end
|
|
151
|
+
else
|
|
152
|
+
if claims["org_name"] && claims["org_name"].downcase !== expected_org.downcase
|
|
140
153
|
redirect_to '/unauthorized', status: 401
|
|
141
154
|
else
|
|
142
155
|
session[:userinfo] = claims
|
|
143
156
|
redirect_to '/dashboard'
|
|
144
157
|
end
|
|
145
158
|
end
|
|
159
|
+
end
|
|
146
160
|
```
|
|
147
161
|
|
|
148
162
|
For more information, please read [Work with Tokens and Organizations](https://auth0.com/docs/organizations/using-tokens) on Auth0 Docs.
|
data/Gemfile
CHANGED
|
@@ -2,7 +2,6 @@ source 'https://rubygems.org'
|
|
|
2
2
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
|
-
gem 'gem-release', '~> 2'
|
|
6
5
|
gem 'jwt', '~> 2'
|
|
7
6
|
gem 'rake', '~> 13'
|
|
8
7
|
|
|
@@ -10,17 +9,17 @@ group :development do
|
|
|
10
9
|
gem 'dotenv', '~> 2'
|
|
11
10
|
gem 'pry', '~> 0'
|
|
12
11
|
gem 'rubocop', '~> 1', require: false
|
|
13
|
-
gem 'shotgun', '~> 0'
|
|
14
|
-
gem 'sinatra', '~>
|
|
12
|
+
gem 'shotgun', '~> 0', '>= 0.9.2'
|
|
13
|
+
gem 'sinatra', '~> 3'
|
|
15
14
|
gem 'thin', '~> 1'
|
|
16
15
|
end
|
|
17
16
|
|
|
18
17
|
group :test do
|
|
19
18
|
gem 'guard-rspec', '~> 4', require: false
|
|
20
19
|
gem 'listen', '~> 3'
|
|
21
|
-
gem 'rack-test', '~> 2'
|
|
20
|
+
gem 'rack-test', '~> 2', '>= 2.0.2'
|
|
22
21
|
gem 'rspec', '~> 3'
|
|
23
|
-
gem 'simplecov-cobertura', '~>
|
|
22
|
+
gem 'simplecov-cobertura', '~> 3.0'
|
|
24
23
|
gem 'webmock', '~> 3'
|
|
25
24
|
gem 'multi_json', '~> 1'
|
|
26
25
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,34 +1,46 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
omniauth-auth0 (3.
|
|
4
|
+
omniauth-auth0 (3.2.0)
|
|
5
|
+
jwt (~> 2)
|
|
5
6
|
omniauth (~> 2)
|
|
6
7
|
omniauth-oauth2 (~> 1)
|
|
7
8
|
|
|
8
9
|
GEM
|
|
9
10
|
remote: https://rubygems.org/
|
|
10
11
|
specs:
|
|
11
|
-
addressable (2.
|
|
12
|
-
public_suffix (>= 2.0.2, <
|
|
13
|
-
ast (2.4.
|
|
12
|
+
addressable (2.9.0)
|
|
13
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
14
|
+
ast (2.4.3)
|
|
15
|
+
auth-sanitizer (0.1.4)
|
|
16
|
+
version_gem (~> 1.1, >= 1.1.9)
|
|
17
|
+
base64 (0.3.0)
|
|
18
|
+
bigdecimal (4.1.2)
|
|
14
19
|
coderay (1.1.3)
|
|
15
|
-
crack (0.
|
|
20
|
+
crack (1.0.1)
|
|
21
|
+
bigdecimal
|
|
16
22
|
rexml
|
|
17
23
|
daemons (1.4.1)
|
|
18
|
-
diff-lcs (1.
|
|
19
|
-
docile (1.4.
|
|
24
|
+
diff-lcs (1.6.2)
|
|
25
|
+
docile (1.4.1)
|
|
20
26
|
dotenv (2.8.1)
|
|
21
27
|
eventmachine (1.2.7)
|
|
22
|
-
faraday (2.
|
|
23
|
-
faraday-net_http (>= 2.0, < 3.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
faraday (2.14.2)
|
|
29
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
30
|
+
json
|
|
31
|
+
logger
|
|
32
|
+
faraday-net_http (3.4.3)
|
|
33
|
+
net-http (~> 0.5)
|
|
34
|
+
ffi (1.17.4-aarch64-linux-gnu)
|
|
35
|
+
ffi (1.17.4-arm64-darwin)
|
|
36
|
+
ffi (1.17.4-x86_64-darwin)
|
|
37
|
+
ffi (1.17.4-x86_64-linux-gnu)
|
|
38
|
+
formatador (1.2.3)
|
|
39
|
+
reline
|
|
40
|
+
guard (2.20.1)
|
|
30
41
|
formatador (>= 0.2.4)
|
|
31
42
|
listen (>= 2.7, < 4.0)
|
|
43
|
+
logger (~> 1.6)
|
|
32
44
|
lumberjack (>= 1.0.12, < 2.0)
|
|
33
45
|
nenv (~> 0.1)
|
|
34
46
|
notiffany (~> 0.0)
|
|
@@ -40,139 +52,164 @@ GEM
|
|
|
40
52
|
guard (~> 2.1)
|
|
41
53
|
guard-compat (~> 1.1)
|
|
42
54
|
rspec (>= 2.99.0, < 4.0)
|
|
43
|
-
hashdiff (1.
|
|
44
|
-
hashie (5.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
55
|
+
hashdiff (1.2.1)
|
|
56
|
+
hashie (5.1.0)
|
|
57
|
+
logger
|
|
58
|
+
io-console (0.8.2)
|
|
59
|
+
json (2.19.7)
|
|
60
|
+
jwt (2.10.3)
|
|
61
|
+
base64
|
|
62
|
+
language_server-protocol (3.17.0.5)
|
|
63
|
+
lint_roller (1.1.0)
|
|
64
|
+
listen (3.10.0)
|
|
65
|
+
logger
|
|
48
66
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
49
67
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
logger (1.7.0)
|
|
69
|
+
lumberjack (1.4.2)
|
|
70
|
+
method_source (1.1.0)
|
|
71
|
+
multi_json (1.21.1)
|
|
72
|
+
multi_xml (0.9.1)
|
|
73
|
+
bigdecimal (>= 3.1, < 5)
|
|
74
|
+
mustermann (3.1.1)
|
|
56
75
|
nenv (0.3.0)
|
|
76
|
+
net-http (0.9.1)
|
|
77
|
+
uri (>= 0.11.1)
|
|
57
78
|
notiffany (0.1.3)
|
|
58
79
|
nenv (~> 0.1)
|
|
59
80
|
shellany (~> 0.0)
|
|
60
|
-
oauth2 (2.0.
|
|
61
|
-
|
|
62
|
-
|
|
81
|
+
oauth2 (2.0.20)
|
|
82
|
+
auth-sanitizer (~> 0.1, >= 0.1.3)
|
|
83
|
+
faraday (>= 0.17.3, < 4.0)
|
|
84
|
+
jwt (>= 1.0, < 4.0)
|
|
85
|
+
logger (~> 1.2)
|
|
63
86
|
multi_xml (~> 0.5)
|
|
64
87
|
rack (>= 1.2, < 4)
|
|
65
|
-
snaky_hash (~> 2.0)
|
|
66
|
-
version_gem (~> 1.1)
|
|
67
|
-
omniauth (2.1.
|
|
88
|
+
snaky_hash (~> 2.0, >= 2.0.4)
|
|
89
|
+
version_gem (~> 1.1, >= 1.1.9)
|
|
90
|
+
omniauth (2.1.4)
|
|
68
91
|
hashie (>= 3.4.6)
|
|
92
|
+
logger
|
|
69
93
|
rack (>= 2.2.3)
|
|
70
94
|
rack-protection
|
|
71
|
-
omniauth-oauth2 (1.
|
|
72
|
-
oauth2 (>=
|
|
95
|
+
omniauth-oauth2 (1.9.0)
|
|
96
|
+
oauth2 (>= 2.0.2, < 3)
|
|
73
97
|
omniauth (~> 2.0)
|
|
74
|
-
parallel (1.
|
|
75
|
-
parser (3.
|
|
98
|
+
parallel (1.28.0)
|
|
99
|
+
parser (3.3.11.1)
|
|
76
100
|
ast (~> 2.4.1)
|
|
77
|
-
|
|
101
|
+
racc
|
|
102
|
+
prism (1.9.0)
|
|
103
|
+
pry (0.16.0)
|
|
78
104
|
coderay (~> 1.1)
|
|
79
105
|
method_source (~> 1.0)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
rack-
|
|
106
|
+
reline (>= 0.6.0)
|
|
107
|
+
public_suffix (7.0.5)
|
|
108
|
+
racc (1.8.1)
|
|
109
|
+
rack (2.2.23)
|
|
110
|
+
rack-protection (3.2.0)
|
|
111
|
+
base64 (>= 0.1.0)
|
|
112
|
+
rack (~> 2.2, >= 2.2.4)
|
|
113
|
+
rack-test (2.2.0)
|
|
85
114
|
rack (>= 1.3)
|
|
86
115
|
rainbow (3.1.1)
|
|
87
|
-
rake (13.
|
|
116
|
+
rake (13.4.2)
|
|
88
117
|
rb-fsevent (0.11.2)
|
|
89
|
-
rb-inotify (0.
|
|
118
|
+
rb-inotify (0.11.1)
|
|
90
119
|
ffi (~> 1.0)
|
|
91
|
-
regexp_parser (2.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
rspec-
|
|
97
|
-
|
|
98
|
-
rspec-
|
|
99
|
-
rspec-
|
|
120
|
+
regexp_parser (2.12.0)
|
|
121
|
+
reline (0.6.3)
|
|
122
|
+
io-console (~> 0.5)
|
|
123
|
+
rexml (3.4.4)
|
|
124
|
+
rspec (3.13.2)
|
|
125
|
+
rspec-core (~> 3.13.0)
|
|
126
|
+
rspec-expectations (~> 3.13.0)
|
|
127
|
+
rspec-mocks (~> 3.13.0)
|
|
128
|
+
rspec-core (3.13.6)
|
|
129
|
+
rspec-support (~> 3.13.0)
|
|
130
|
+
rspec-expectations (3.13.5)
|
|
100
131
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
101
|
-
rspec-support (~> 3.
|
|
102
|
-
rspec-mocks (3.
|
|
132
|
+
rspec-support (~> 3.13.0)
|
|
133
|
+
rspec-mocks (3.13.8)
|
|
103
134
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
104
|
-
rspec-support (~> 3.
|
|
105
|
-
rspec-support (3.
|
|
106
|
-
rubocop (1.
|
|
135
|
+
rspec-support (~> 3.13.0)
|
|
136
|
+
rspec-support (3.13.7)
|
|
137
|
+
rubocop (1.86.2)
|
|
107
138
|
json (~> 2.3)
|
|
108
|
-
|
|
109
|
-
|
|
139
|
+
language_server-protocol (~> 3.17.0.2)
|
|
140
|
+
lint_roller (~> 1.1.0)
|
|
141
|
+
parallel (>= 1.10)
|
|
142
|
+
parser (>= 3.3.0.2)
|
|
110
143
|
rainbow (>= 2.2.2, < 4.0)
|
|
111
|
-
regexp_parser (>=
|
|
112
|
-
|
|
113
|
-
rubocop-ast (>= 1.23.0, < 2.0)
|
|
144
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
145
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
114
146
|
ruby-progressbar (~> 1.7)
|
|
115
|
-
unicode-display_width (>=
|
|
116
|
-
rubocop-ast (1.
|
|
117
|
-
parser (>= 3.
|
|
118
|
-
|
|
119
|
-
|
|
147
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
148
|
+
rubocop-ast (1.49.1)
|
|
149
|
+
parser (>= 3.3.7.2)
|
|
150
|
+
prism (~> 1.7)
|
|
151
|
+
ruby-progressbar (1.13.0)
|
|
120
152
|
shellany (0.0.1)
|
|
121
153
|
shotgun (0.9.2)
|
|
122
154
|
rack (>= 1.0)
|
|
123
|
-
simplecov (0.
|
|
155
|
+
simplecov (0.22.0)
|
|
124
156
|
docile (~> 1.1)
|
|
125
157
|
simplecov-html (~> 0.11)
|
|
126
158
|
simplecov_json_formatter (~> 0.1)
|
|
127
|
-
simplecov-cobertura (
|
|
159
|
+
simplecov-cobertura (3.1.0)
|
|
128
160
|
rexml
|
|
129
161
|
simplecov (~> 0.19)
|
|
130
|
-
simplecov-html (0.
|
|
162
|
+
simplecov-html (0.13.2)
|
|
131
163
|
simplecov_json_formatter (0.1.4)
|
|
132
|
-
sinatra (
|
|
133
|
-
mustermann (~>
|
|
134
|
-
rack (~> 2.2)
|
|
135
|
-
rack-protection (=
|
|
164
|
+
sinatra (3.2.0)
|
|
165
|
+
mustermann (~> 3.0)
|
|
166
|
+
rack (~> 2.2, >= 2.2.4)
|
|
167
|
+
rack-protection (= 3.2.0)
|
|
136
168
|
tilt (~> 2.0)
|
|
137
|
-
snaky_hash (2.0.
|
|
138
|
-
hashie
|
|
139
|
-
version_gem (
|
|
140
|
-
thin (1.8.
|
|
169
|
+
snaky_hash (2.0.4)
|
|
170
|
+
hashie (>= 0.1.0, < 6)
|
|
171
|
+
version_gem (>= 1.1.8, < 3)
|
|
172
|
+
thin (1.8.2)
|
|
141
173
|
daemons (~> 1.0, >= 1.0.9)
|
|
142
174
|
eventmachine (~> 1.0, >= 1.0.4)
|
|
143
175
|
rack (>= 1, < 3)
|
|
144
|
-
thor (1.
|
|
145
|
-
tilt (2.0
|
|
146
|
-
unicode-display_width (2.
|
|
147
|
-
|
|
148
|
-
|
|
176
|
+
thor (1.5.0)
|
|
177
|
+
tilt (2.7.0)
|
|
178
|
+
unicode-display_width (3.2.0)
|
|
179
|
+
unicode-emoji (~> 4.1)
|
|
180
|
+
unicode-emoji (4.2.0)
|
|
181
|
+
uri (1.1.1)
|
|
182
|
+
version_gem (1.1.9)
|
|
183
|
+
webmock (3.26.2)
|
|
149
184
|
addressable (>= 2.8.0)
|
|
150
185
|
crack (>= 0.3.2)
|
|
151
186
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
152
187
|
|
|
153
188
|
PLATFORMS
|
|
189
|
+
aarch64-linux
|
|
154
190
|
arm64-darwin-21
|
|
155
|
-
|
|
156
|
-
|
|
191
|
+
arm64-darwin-22
|
|
192
|
+
arm64-darwin-23
|
|
193
|
+
arm64-darwin-25
|
|
194
|
+
x86_64-darwin-22
|
|
157
195
|
x86_64-linux
|
|
158
196
|
|
|
159
197
|
DEPENDENCIES
|
|
160
198
|
bundler
|
|
161
199
|
dotenv (~> 2)
|
|
162
|
-
gem-release (~> 2)
|
|
163
200
|
guard-rspec (~> 4)
|
|
164
201
|
jwt (~> 2)
|
|
165
202
|
listen (~> 3)
|
|
166
203
|
multi_json (~> 1)
|
|
167
204
|
omniauth-auth0!
|
|
168
205
|
pry (~> 0)
|
|
169
|
-
rack-test (~> 2)
|
|
206
|
+
rack-test (~> 2, >= 2.0.2)
|
|
170
207
|
rake (~> 13)
|
|
171
208
|
rspec (~> 3)
|
|
172
209
|
rubocop (~> 1)
|
|
173
|
-
shotgun (~> 0)
|
|
174
|
-
simplecov-cobertura (~>
|
|
175
|
-
sinatra (~>
|
|
210
|
+
shotgun (~> 0, >= 0.9.2)
|
|
211
|
+
simplecov-cobertura (~> 3.0)
|
|
212
|
+
sinatra (~> 3)
|
|
176
213
|
thin (~> 1)
|
|
177
214
|
webmock (~> 3)
|
|
178
215
|
|