jwt 2.1.0 → 2.5.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 +5 -5
- data/.codeclimate.yml +6 -18
- data/.github/workflows/coverage.yml +27 -0
- data/.github/workflows/test.yml +67 -0
- data/.gitignore +3 -1
- data/.reek.yml +21 -39
- data/.rspec +1 -0
- data/.rubocop.yml +21 -52
- data/{.ebert.yml → .sourcelevel.yml} +3 -4
- data/AUTHORS +119 -0
- data/Appraisals +13 -0
- data/CHANGELOG.md +329 -19
- data/CODE_OF_CONDUCT.md +84 -0
- data/CONTRIBUTING.md +99 -0
- data/Gemfile +4 -0
- data/README.md +261 -100
- data/Rakefile +6 -1
- data/lib/jwt/algos/ecdsa.rb +37 -8
- data/lib/jwt/algos/eddsa.rb +16 -4
- data/lib/jwt/algos/hmac.rb +3 -0
- data/lib/jwt/algos/none.rb +17 -0
- data/lib/jwt/algos/ps.rb +43 -0
- data/lib/jwt/algos/rsa.rb +4 -1
- data/lib/jwt/algos/unsupported.rb +7 -4
- data/lib/jwt/algos.rb +44 -0
- data/lib/jwt/base64.rb +19 -0
- data/lib/jwt/claims_validator.rb +37 -0
- data/lib/jwt/configuration/container.rb +21 -0
- data/lib/jwt/configuration/decode_configuration.rb +46 -0
- data/lib/jwt/configuration/jwk_configuration.rb +27 -0
- data/lib/jwt/configuration.rb +15 -0
- data/lib/jwt/decode.rb +120 -24
- data/lib/jwt/encode.rb +43 -25
- data/lib/jwt/error.rb +6 -0
- data/lib/jwt/json.rb +18 -0
- data/lib/jwt/jwk/ec.rb +199 -0
- data/lib/jwt/jwk/hmac.rb +67 -0
- data/lib/jwt/jwk/key_base.rb +35 -0
- data/lib/jwt/jwk/key_finder.rb +62 -0
- data/lib/jwt/jwk/kid_as_key_digest.rb +15 -0
- data/lib/jwt/jwk/rsa.rb +138 -0
- data/lib/jwt/jwk/thumbprint.rb +26 -0
- data/lib/jwt/jwk.rb +52 -0
- data/lib/jwt/security_utils.rb +8 -0
- data/lib/jwt/signature.rb +7 -22
- data/lib/jwt/verify.rb +19 -8
- data/lib/jwt/version.rb +6 -2
- data/lib/jwt/x5c_key_finder.rb +55 -0
- data/lib/jwt.rb +12 -44
- data/ruby-jwt.gemspec +13 -9
- metadata +44 -97
- data/.travis.yml +0 -14
- data/Manifest +0 -8
- data/lib/jwt/default_options.rb +0 -15
- data/spec/fixtures/certs/ec256-private.pem +0 -8
- data/spec/fixtures/certs/ec256-public.pem +0 -4
- data/spec/fixtures/certs/ec256-wrong-private.pem +0 -8
- data/spec/fixtures/certs/ec256-wrong-public.pem +0 -4
- data/spec/fixtures/certs/ec384-private.pem +0 -9
- data/spec/fixtures/certs/ec384-public.pem +0 -5
- data/spec/fixtures/certs/ec384-wrong-private.pem +0 -9
- data/spec/fixtures/certs/ec384-wrong-public.pem +0 -5
- data/spec/fixtures/certs/ec512-private.pem +0 -10
- data/spec/fixtures/certs/ec512-public.pem +0 -6
- data/spec/fixtures/certs/ec512-wrong-private.pem +0 -10
- data/spec/fixtures/certs/ec512-wrong-public.pem +0 -6
- data/spec/fixtures/certs/rsa-1024-private.pem +0 -15
- data/spec/fixtures/certs/rsa-1024-public.pem +0 -6
- data/spec/fixtures/certs/rsa-2048-private.pem +0 -27
- data/spec/fixtures/certs/rsa-2048-public.pem +0 -9
- data/spec/fixtures/certs/rsa-2048-wrong-private.pem +0 -27
- data/spec/fixtures/certs/rsa-2048-wrong-public.pem +0 -9
- data/spec/fixtures/certs/rsa-4096-private.pem +0 -51
- data/spec/fixtures/certs/rsa-4096-public.pem +0 -14
- data/spec/integration/readme_examples_spec.rb +0 -202
- data/spec/jwt/verify_spec.rb +0 -232
- data/spec/jwt_spec.rb +0 -315
- data/spec/spec_helper.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a3098671a837e7b291103cde1921277c61ecaa0f0797b955e6adc65328498f0d
|
4
|
+
data.tar.gz: 3253833ac6d7743e40a5d5157b161cd0daecc9b77f61dfa7687d6b3da1be56ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 306c946b1199301a3f1000c8ffba4a77d07fd05dd83f769da86fd29f254827b5af8488a4b6a54b11f1f7f3a028cb88caafb7ed67528e7004c0337f6506e595ea
|
7
|
+
data.tar.gz: 57d1eba7a06bc9d9f9fcb76b42aa3808415af5020c53969b4cada890b1646e7d348a96ce18010ab0a978e42825febbeb7b3f205b72e8ce60ef90132cf5887599
|
data/.codeclimate.yml
CHANGED
@@ -1,20 +1,8 @@
|
|
1
|
-
|
1
|
+
plugins:
|
2
|
+
fixme:
|
3
|
+
enabled: true
|
4
|
+
shellcheck:
|
5
|
+
enabled: true
|
2
6
|
rubocop:
|
3
7
|
enabled: true
|
4
|
-
|
5
|
-
enabled: false
|
6
|
-
gofmt:
|
7
|
-
enabled: false
|
8
|
-
eslint:
|
9
|
-
enabled: false
|
10
|
-
csslint:
|
11
|
-
enabled: false
|
12
|
-
|
13
|
-
ratings:
|
14
|
-
paths:
|
15
|
-
- lib/**
|
16
|
-
- "**.rb"
|
17
|
-
|
18
|
-
exclude_paths:
|
19
|
-
- spec/**/*
|
20
|
-
- vendor/**/*
|
8
|
+
channel: rubocop-1-23-0
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
name: coverage
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- "master"
|
7
|
+
jobs:
|
8
|
+
coverage:
|
9
|
+
name: coverage
|
10
|
+
runs-on: ubuntu-20.04
|
11
|
+
env:
|
12
|
+
BUNDLE_GEMFILE: 'gemfiles/rbnacl.gemfile'
|
13
|
+
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v2
|
16
|
+
- name: Install libsodium
|
17
|
+
run: |
|
18
|
+
sudo apt-get update -q
|
19
|
+
sudo apt-get install libsodium-dev -y
|
20
|
+
- name: Set up Ruby
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: "2.7"
|
24
|
+
bundler-cache: true
|
25
|
+
- uses: paambaati/codeclimate-action@v3.0.0
|
26
|
+
with:
|
27
|
+
coverageCommand: bundle exec rspec
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
name: test
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- "*"
|
7
|
+
pull_request:
|
8
|
+
branches:
|
9
|
+
- "*"
|
10
|
+
jobs:
|
11
|
+
lint:
|
12
|
+
name: RuboCop
|
13
|
+
timeout-minutes: 30
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v3
|
17
|
+
- name: Set up Ruby
|
18
|
+
uses: ruby/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: "3.0"
|
21
|
+
bundler-cache: true
|
22
|
+
- name: Run RuboCop
|
23
|
+
run: bundle exec rubocop
|
24
|
+
test:
|
25
|
+
name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }}
|
26
|
+
runs-on: ${{ matrix.os }}
|
27
|
+
strategy:
|
28
|
+
fail-fast: false
|
29
|
+
matrix:
|
30
|
+
os:
|
31
|
+
- ubuntu-20.04
|
32
|
+
ruby:
|
33
|
+
- "2.5"
|
34
|
+
- "2.6"
|
35
|
+
- "2.7"
|
36
|
+
- "3.0"
|
37
|
+
- "3.1"
|
38
|
+
gemfile:
|
39
|
+
- gemfiles/standalone.gemfile
|
40
|
+
- gemfiles/openssl.gemfile
|
41
|
+
- gemfiles/rbnacl.gemfile
|
42
|
+
experimental: [false]
|
43
|
+
include:
|
44
|
+
- { os: ubuntu-20.04, ruby: "2.7", gemfile: 'gemfiles/rbnacl.gemfile', experimental: false }
|
45
|
+
- { os: ubuntu-22.04, ruby: "3.1", experimental: false }
|
46
|
+
- { os: ubuntu-20.04, ruby: "truffleruby-head", experimental: true }
|
47
|
+
- { os: ubuntu-22.04, ruby: "head", experimental: true }
|
48
|
+
continue-on-error: ${{ matrix.experimental }}
|
49
|
+
env:
|
50
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
51
|
+
|
52
|
+
steps:
|
53
|
+
- uses: actions/checkout@v3
|
54
|
+
|
55
|
+
- name: Install libsodium
|
56
|
+
run: |
|
57
|
+
sudo apt-get update -q
|
58
|
+
sudo apt-get install libsodium-dev -y
|
59
|
+
|
60
|
+
- name: Set up Ruby
|
61
|
+
uses: ruby/setup-ruby@v1
|
62
|
+
with:
|
63
|
+
ruby-version: ${{ matrix.ruby }}
|
64
|
+
bundler-cache: true
|
65
|
+
|
66
|
+
- name: Run tests
|
67
|
+
run: bundle exec rspec
|
data/.gitignore
CHANGED
data/.reek.yml
CHANGED
@@ -1,40 +1,22 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
IrresponsibleModule:
|
24
|
-
enabled: false
|
25
|
-
NestedIterators:
|
26
|
-
max_allowed_nesting: 2
|
27
|
-
PrimaDonnaMethod:
|
28
|
-
enabled: false
|
29
|
-
UnusedParameters:
|
30
|
-
enabled: false
|
31
|
-
FeatureEnvy:
|
32
|
-
enabled: false
|
33
|
-
ControlParameter:
|
34
|
-
enabled: false
|
35
|
-
UnusedPrivateMethod:
|
36
|
-
enabled: false
|
37
|
-
InstanceVariableAssumption:
|
38
|
-
exclude:
|
39
|
-
- !ruby/regexp /Controller$/
|
40
|
-
- !ruby/regexp /Mailer$/s
|
2
|
+
detectors:
|
3
|
+
TooManyStatements:
|
4
|
+
max_statements: 10
|
5
|
+
UtilityFunction:
|
6
|
+
enabled: false
|
7
|
+
LongParameterList:
|
8
|
+
enabled: false
|
9
|
+
DuplicateMethodCall:
|
10
|
+
max_calls: 2
|
11
|
+
IrresponsibleModule:
|
12
|
+
enabled: false
|
13
|
+
NestedIterators:
|
14
|
+
max_allowed_nesting: 2
|
15
|
+
UnusedParameters:
|
16
|
+
enabled: false
|
17
|
+
FeatureEnvy:
|
18
|
+
enabled: false
|
19
|
+
ControlParameter:
|
20
|
+
enabled: false
|
21
|
+
UnusedPrivateMethod:
|
22
|
+
enabled: false
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,29 +1,10 @@
|
|
1
1
|
AllCops:
|
2
|
+
TargetRubyVersion: 2.5
|
3
|
+
NewCops: enable
|
4
|
+
SuggestExtensions: false
|
2
5
|
Exclude:
|
3
|
-
- '
|
4
|
-
- '
|
5
|
-
- 'config/**/*'
|
6
|
-
- 'script/**/*'
|
7
|
-
|
8
|
-
Rails:
|
9
|
-
Enabled: true
|
10
|
-
|
11
|
-
Style/AlignParameters:
|
12
|
-
EnforcedStyle: with_fixed_indentation
|
13
|
-
|
14
|
-
Style/CaseIndentation:
|
15
|
-
EnforcedStyle: end
|
16
|
-
|
17
|
-
Style/AsciiComments:
|
18
|
-
Enabled: false
|
19
|
-
|
20
|
-
Style/IndentHash:
|
21
|
-
Enabled: false
|
22
|
-
|
23
|
-
Style/CollectionMethods:
|
24
|
-
Enabled: true
|
25
|
-
PreferredMethods:
|
26
|
-
inject: 'inject'
|
6
|
+
- 'gemfiles/*.gemfile'
|
7
|
+
- 'vendor/**/*'
|
27
8
|
|
28
9
|
Style/Documentation:
|
29
10
|
Enabled: false
|
@@ -32,67 +13,55 @@ Style/BlockDelimiters:
|
|
32
13
|
Exclude:
|
33
14
|
- spec/**/*_spec.rb
|
34
15
|
|
35
|
-
Style/BracesAroundHashParameters:
|
36
|
-
Exclude:
|
37
|
-
- spec/**/*_spec.rb
|
38
|
-
|
39
16
|
Style/GuardClause:
|
40
17
|
Enabled: false
|
41
18
|
|
42
19
|
Style/IfUnlessModifier:
|
43
20
|
Enabled: false
|
44
21
|
|
45
|
-
Style/SpaceInsideHashLiteralBraces:
|
46
|
-
Enabled: false
|
47
|
-
|
48
22
|
Style/Lambda:
|
49
23
|
Enabled: false
|
50
24
|
|
51
25
|
Style/RaiseArgs:
|
52
26
|
Enabled: false
|
53
27
|
|
54
|
-
Style/SignalException:
|
55
|
-
Enabled: false
|
56
|
-
|
57
28
|
Metrics/AbcSize:
|
58
|
-
Max:
|
29
|
+
Max: 25
|
59
30
|
|
60
31
|
Metrics/ClassLength:
|
61
|
-
Max:
|
32
|
+
Max: 112
|
62
33
|
|
63
34
|
Metrics/ModuleLength:
|
64
35
|
Max: 100
|
65
36
|
|
66
|
-
Metrics/LineLength:
|
67
|
-
Enabled: false
|
68
|
-
|
69
37
|
Metrics/MethodLength:
|
70
|
-
Max:
|
38
|
+
Max: 20
|
71
39
|
|
72
|
-
|
40
|
+
Metrics/BlockLength:
|
41
|
+
Exclude:
|
42
|
+
- spec/**/*_spec.rb
|
43
|
+
|
44
|
+
Layout/LineLength:
|
73
45
|
Enabled: false
|
74
46
|
|
75
|
-
|
47
|
+
Layout/EndAlignment:
|
76
48
|
EnforcedStyleAlignWith: variable
|
77
49
|
|
50
|
+
Layout/EmptyLineBetweenDefs:
|
51
|
+
Enabled: true
|
52
|
+
AllowAdjacentOneLineDefs: true
|
53
|
+
|
78
54
|
Style/FormatString:
|
79
55
|
Enabled: false
|
80
56
|
|
81
|
-
|
57
|
+
Layout/MultilineMethodCallIndentation:
|
82
58
|
EnforcedStyle: indented
|
83
59
|
|
84
|
-
|
60
|
+
Layout/MultilineOperationIndentation:
|
85
61
|
EnforcedStyle: indented
|
86
62
|
|
87
63
|
Style/WordArray:
|
88
64
|
Enabled: false
|
89
65
|
|
90
|
-
|
66
|
+
Gemspec/RequireMFA:
|
91
67
|
Enabled: false
|
92
|
-
|
93
|
-
Style/AlignHash:
|
94
|
-
Enabled: true
|
95
|
-
EnforcedLastArgumentHashStyle: always_ignore
|
96
|
-
|
97
|
-
Style/TrivialAccessors:
|
98
|
-
AllowPredicates: true
|
@@ -1,4 +1,3 @@
|
|
1
|
-
styleguide: excpt/linters
|
2
1
|
engines:
|
3
2
|
reek:
|
4
3
|
enabled: true
|
@@ -6,13 +5,13 @@ engines:
|
|
6
5
|
enabled: true
|
7
6
|
rubocop:
|
8
7
|
enabled: true
|
9
|
-
channel:
|
8
|
+
channel: latest
|
10
9
|
duplication:
|
11
10
|
config:
|
12
11
|
languages:
|
13
12
|
- ruby
|
14
13
|
enabled: true
|
15
14
|
remark-lint:
|
16
|
-
enabled:
|
15
|
+
enabled: false
|
17
16
|
exclude_paths:
|
18
|
-
- spec
|
17
|
+
- spec
|
data/AUTHORS
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
Tim Rudat
|
2
|
+
Joakim Antman
|
3
|
+
Jeff Lindsay
|
4
|
+
A.B
|
5
|
+
shields
|
6
|
+
Bob Aman
|
7
|
+
Emilio Cristalli
|
8
|
+
Egon Zemmer
|
9
|
+
Zane Shannon
|
10
|
+
Nikita Shatov
|
11
|
+
Paul Battley
|
12
|
+
Oliver
|
13
|
+
blackanger
|
14
|
+
Ville Lautanala
|
15
|
+
Tyler Pickett
|
16
|
+
James Stonehill
|
17
|
+
Adam Michael
|
18
|
+
Martin Emde
|
19
|
+
Saverio Trioni
|
20
|
+
Peter M. Goldstein
|
21
|
+
Korstiaan de Ridder
|
22
|
+
Richard Larocque
|
23
|
+
Andrew Davis
|
24
|
+
Yason Khaburzaniya
|
25
|
+
Klaas Jan Wierenga
|
26
|
+
Nick Hammond
|
27
|
+
Bart de Water
|
28
|
+
Steve Sloan
|
29
|
+
Antonis Berkakis
|
30
|
+
Bill Mill
|
31
|
+
Kevin Olbrich
|
32
|
+
Simon Fish
|
33
|
+
jb08
|
34
|
+
lukas
|
35
|
+
Rodrigo López Dato
|
36
|
+
ojab
|
37
|
+
Ritikesh
|
38
|
+
sawyerzhang
|
39
|
+
Larry Lv
|
40
|
+
smudge
|
41
|
+
wohlgejm
|
42
|
+
Tom Wey
|
43
|
+
yann ARMAND
|
44
|
+
Brian Flethcer
|
45
|
+
Jurriaan Pruis
|
46
|
+
Erik Michaels-Ober
|
47
|
+
Matthew Simpson
|
48
|
+
Steven Davidovitz
|
49
|
+
Nicolas Leger
|
50
|
+
Pierre Michard
|
51
|
+
RahulBajaj
|
52
|
+
Rob Wygand
|
53
|
+
Ryan Brushett
|
54
|
+
Ryan McIlmoyl
|
55
|
+
Ryan Metzler
|
56
|
+
Severin Schoepke
|
57
|
+
Shaun Guth
|
58
|
+
Steve Teti
|
59
|
+
T.J. Schuck
|
60
|
+
Taiki Sugawara
|
61
|
+
Takehiro Adachi
|
62
|
+
Tobias Haar
|
63
|
+
Toby Pinder
|
64
|
+
Tomé Duarte
|
65
|
+
Travis Hunter
|
66
|
+
Yuji Yaginuma
|
67
|
+
Zuzanna Stolińska
|
68
|
+
aarongray
|
69
|
+
danielgrippi
|
70
|
+
fusagiko/takayamaki
|
71
|
+
mai fujii
|
72
|
+
nycvotes-dev
|
73
|
+
revodoge
|
74
|
+
rono23
|
75
|
+
antonmorant
|
76
|
+
Adam Greene
|
77
|
+
Alexander Boyd
|
78
|
+
Alexandr Kostrikov
|
79
|
+
Aman Gupta
|
80
|
+
Ariel Salomon
|
81
|
+
Arnaud Mesureur
|
82
|
+
Artsiom Kuts
|
83
|
+
Austin Kabiru
|
84
|
+
B
|
85
|
+
Bouke van der Bijl
|
86
|
+
Brandon Keepers
|
87
|
+
Dan Leyden
|
88
|
+
Dave Grijalva
|
89
|
+
Dmitry Pashkevich
|
90
|
+
Dorian Marié
|
91
|
+
Ernie Miller
|
92
|
+
Evgeni Golov
|
93
|
+
Ewoud Kohl van Wijngaarden
|
94
|
+
HoneyryderChuck
|
95
|
+
Igor Victor
|
96
|
+
Ilyaaaaaaaaaaaaa Zhitomirskiy
|
97
|
+
Jens Hausherr
|
98
|
+
Jeremiah Wuenschel
|
99
|
+
John Downey
|
100
|
+
Jordan Brough
|
101
|
+
Josh Bodah
|
102
|
+
JotaSe
|
103
|
+
Juanito Fatas
|
104
|
+
Julio Lopez
|
105
|
+
Katelyn Kasperowicz
|
106
|
+
Leonardo Saraiva
|
107
|
+
Lowell Kirsh
|
108
|
+
Loïc Lengrand
|
109
|
+
Lucas Mazza
|
110
|
+
Makoto Chiba
|
111
|
+
Manuel Bustillo
|
112
|
+
Marco Adkins
|
113
|
+
Meredith Leu
|
114
|
+
Micah Gates
|
115
|
+
Michał Begejowicz
|
116
|
+
Mike Eirih
|
117
|
+
Mike Pastore
|
118
|
+
Mingan
|
119
|
+
Mitch Birti
|