jwt 2.2.2 → 2.4.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +6 -18
- data/.github/workflows/coverage.yml +27 -0
- data/.github/workflows/test.yml +66 -0
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/.rubocop.yml +20 -37
- data/.rubocop_todo.yml +22 -0
- data/{.ebert.yml → .sourcelevel.yml} +1 -1
- data/AUTHORS +79 -44
- data/Appraisals +7 -12
- data/CHANGELOG.md +143 -5
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +4 -0
- data/README.md +135 -29
- data/Rakefile +6 -1
- data/lib/jwt/algos/ecdsa.rb +23 -5
- data/lib/jwt/algos/eddsa.rb +14 -4
- data/lib/jwt/algos/hmac.rb +2 -0
- data/lib/jwt/algos/none.rb +17 -0
- data/lib/jwt/algos/ps.rb +3 -3
- 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/claims_validator.rb +12 -8
- data/lib/jwt/decode.rb +50 -12
- data/lib/jwt/default_options.rb +4 -1
- data/lib/jwt/encode.rb +10 -9
- data/lib/jwt/error.rb +2 -0
- data/lib/jwt/jwk/ec.rb +150 -0
- data/lib/jwt/jwk/hmac.rb +58 -0
- data/lib/jwt/jwk/key_base.rb +19 -0
- data/lib/jwt/jwk/key_finder.rb +6 -1
- data/lib/jwt/jwk/rsa.rb +85 -23
- data/lib/jwt/jwk.rb +32 -11
- data/lib/jwt/security_utils.rb +2 -0
- data/lib/jwt/signature.rb +7 -26
- data/lib/jwt/verify.rb +18 -3
- data/lib/jwt/version.rb +3 -4
- data/lib/jwt/x5c_key_finder.rb +55 -0
- data/lib/jwt.rb +1 -1
- data/ruby-jwt.gemspec +9 -9
- metadata +20 -80
- data/.travis.yml +0 -29
- data/lib/jwt/base64.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 637320f6741edec8adfafb3513fdad0927b9c08271137e7ad47e2b7515a6b90a
|
4
|
+
data.tar.gz: a089bc9ef99438988ef542135cdfaa68496fd645877200059ab461122816e11e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdf07ebbbadc38c80b6eda44a6571d7bd8f5c0d806cb1955295fa201f8a77f9faba55567e23825eaf23350eaef391e6c34a09666297b1fe7cd0178348fe93586
|
7
|
+
data.tar.gz: 924d0f219493f2cf133753ca25fbd7682d7f307b7b3724a659c795ef864b9129137e2b6db8d3591f1a006c9925c325ff51f2a87f23ad0b1d6b198124135ce093
|
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,66 @@
|
|
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@v2
|
17
|
+
- name: Set up Ruby
|
18
|
+
uses: ruby/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: "2.7"
|
21
|
+
bundler-cache: true
|
22
|
+
- name: Run RuboCop
|
23
|
+
run: bundle exec rubocop
|
24
|
+
test:
|
25
|
+
strategy:
|
26
|
+
fail-fast: false
|
27
|
+
matrix:
|
28
|
+
ruby:
|
29
|
+
- 2.5
|
30
|
+
- 2.6
|
31
|
+
- 2.7
|
32
|
+
- "3.0"
|
33
|
+
- 3.1
|
34
|
+
gemfile:
|
35
|
+
- gemfiles/standalone.gemfile
|
36
|
+
- gemfiles/openssl.gemfile
|
37
|
+
- gemfiles/rbnacl.gemfile
|
38
|
+
experimental: [false]
|
39
|
+
include:
|
40
|
+
- ruby: 2.7
|
41
|
+
gemfile: 'gemfiles/rbnacl.gemfile'
|
42
|
+
- ruby: "ruby-head"
|
43
|
+
experimental: true
|
44
|
+
- ruby: "truffleruby-head"
|
45
|
+
experimental: true
|
46
|
+
runs-on: ubuntu-20.04
|
47
|
+
continue-on-error: ${{ matrix.experimental }}
|
48
|
+
env:
|
49
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
50
|
+
|
51
|
+
steps:
|
52
|
+
- uses: actions/checkout@v2
|
53
|
+
|
54
|
+
- name: Install libsodium
|
55
|
+
run: |
|
56
|
+
sudo apt-get update -q
|
57
|
+
sudo apt-get install libsodium-dev -y
|
58
|
+
|
59
|
+
- name: Set up Ruby
|
60
|
+
uses: ruby/setup-ruby@v1
|
61
|
+
with:
|
62
|
+
ruby-version: ${{ matrix.ruby }}
|
63
|
+
bundler-cache: true
|
64
|
+
|
65
|
+
- name: Run tests
|
66
|
+
run: bundle exec rspec
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,29 +1,12 @@
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
1
3
|
AllCops:
|
4
|
+
TargetRubyVersion: 2.5
|
5
|
+
NewCops: enable
|
6
|
+
SuggestExtensions: false
|
2
7
|
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'
|
8
|
+
- 'gemfiles/*.gemfile'
|
9
|
+
- 'vendor/**/*'
|
27
10
|
|
28
11
|
Style/Documentation:
|
29
12
|
Enabled: false
|
@@ -32,17 +15,13 @@ Style/BlockDelimiters:
|
|
32
15
|
Exclude:
|
33
16
|
- spec/**/*_spec.rb
|
34
17
|
|
35
|
-
Style/BracesAroundHashParameters:
|
36
|
-
Exclude:
|
37
|
-
- spec/**/*_spec.rb
|
38
|
-
|
39
18
|
Style/GuardClause:
|
40
19
|
Enabled: false
|
41
20
|
|
42
21
|
Style/IfUnlessModifier:
|
43
22
|
Enabled: false
|
44
23
|
|
45
|
-
|
24
|
+
Layout/SpaceInsideHashLiteralBraces:
|
46
25
|
Enabled: false
|
47
26
|
|
48
27
|
Style/Lambda:
|
@@ -55,33 +34,37 @@ Style/SignalException:
|
|
55
34
|
Enabled: false
|
56
35
|
|
57
36
|
Metrics/AbcSize:
|
58
|
-
Max:
|
37
|
+
Max: 25
|
59
38
|
|
60
39
|
Metrics/ClassLength:
|
61
|
-
Max:
|
40
|
+
Max: 103
|
62
41
|
|
63
42
|
Metrics/ModuleLength:
|
64
43
|
Max: 100
|
65
44
|
|
66
|
-
|
45
|
+
Layout/LineLength:
|
67
46
|
Enabled: false
|
68
47
|
|
48
|
+
Metrics/BlockLength:
|
49
|
+
Exclude:
|
50
|
+
- spec/**/*_spec.rb
|
51
|
+
|
69
52
|
Metrics/MethodLength:
|
70
53
|
Max: 15
|
71
54
|
|
72
55
|
Style/SingleLineBlockParams:
|
73
56
|
Enabled: false
|
74
57
|
|
75
|
-
|
58
|
+
Layout/EndAlignment:
|
76
59
|
EnforcedStyleAlignWith: variable
|
77
60
|
|
78
61
|
Style/FormatString:
|
79
62
|
Enabled: false
|
80
63
|
|
81
|
-
|
64
|
+
Layout/MultilineMethodCallIndentation:
|
82
65
|
EnforcedStyle: indented
|
83
66
|
|
84
|
-
|
67
|
+
Layout/MultilineOperationIndentation:
|
85
68
|
EnforcedStyle: indented
|
86
69
|
|
87
70
|
Style/WordArray:
|
@@ -90,9 +73,9 @@ Style/WordArray:
|
|
90
73
|
Style/RedundantSelf:
|
91
74
|
Enabled: false
|
92
75
|
|
93
|
-
|
76
|
+
Layout/HashAlignment:
|
94
77
|
Enabled: true
|
95
78
|
EnforcedLastArgumentHashStyle: always_ignore
|
96
79
|
|
97
80
|
Style/TrivialAccessors:
|
98
|
-
AllowPredicates: true
|
81
|
+
AllowPredicates: true
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config --exclude-limit 1000000`
|
3
|
+
# on 2021-12-27 06:53:55 UTC using RuboCop version 1.23.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
# Cop supports --auto-correct.
|
11
|
+
# Configuration parameters: Include.
|
12
|
+
# Include: **/*.gemspec
|
13
|
+
Gemspec/RequireMFA:
|
14
|
+
Exclude:
|
15
|
+
- 'ruby-jwt.gemspec'
|
16
|
+
|
17
|
+
# Offense count: 1
|
18
|
+
# Configuration parameters: AllowedMethods.
|
19
|
+
# AllowedMethods: respond_to_missing?
|
20
|
+
Style/OptionalBooleanParameter:
|
21
|
+
Exclude:
|
22
|
+
- 'lib/jwt.rb'
|
data/AUTHORS
CHANGED
@@ -1,84 +1,119 @@
|
|
1
1
|
Tim Rudat
|
2
|
+
Joakim Antman
|
2
3
|
Jeff Lindsay
|
3
4
|
A.B
|
4
|
-
|
5
|
+
shields
|
5
6
|
Bob Aman
|
7
|
+
Emilio Cristalli
|
8
|
+
Egon Zemmer
|
6
9
|
Zane Shannon
|
7
|
-
Oliver
|
8
|
-
Paul Battley
|
9
10
|
Nikita Shatov
|
11
|
+
Paul Battley
|
12
|
+
Oliver
|
10
13
|
blackanger
|
14
|
+
Ville Lautanala
|
11
15
|
Tyler Pickett
|
12
16
|
James Stonehill
|
13
17
|
Adam Michael
|
14
|
-
|
18
|
+
Martin Emde
|
19
|
+
Saverio Trioni
|
15
20
|
Peter M. Goldstein
|
16
|
-
Joakim Antman
|
17
21
|
Korstiaan de Ridder
|
22
|
+
Richard Larocque
|
23
|
+
Andrew Davis
|
24
|
+
Yason Khaburzaniya
|
18
25
|
Klaas Jan Wierenga
|
26
|
+
Nick Hammond
|
27
|
+
Bart de Water
|
19
28
|
Steve Sloan
|
29
|
+
Antonis Berkakis
|
20
30
|
Bill Mill
|
21
|
-
Erik Michaels-Ober
|
22
|
-
Brian Flethcer
|
23
|
-
Jurriaan Pruis
|
24
31
|
Kevin Olbrich
|
25
|
-
|
26
|
-
|
27
|
-
Steven Davidovitz
|
28
|
-
Tom Wey
|
32
|
+
Simon Fish
|
33
|
+
jb08
|
29
34
|
lukas
|
35
|
+
Rodrigo López Dato
|
30
36
|
ojab
|
37
|
+
Ritikesh
|
31
38
|
sawyerzhang
|
39
|
+
Larry Lv
|
40
|
+
smudge
|
32
41
|
wohlgejm
|
42
|
+
Tom Wey
|
33
43
|
yann ARMAND
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
aarongray
|
40
|
-
B
|
41
|
-
Adam Greene
|
42
|
-
Lowell Kirsh
|
43
|
-
Lucas Mazza
|
44
|
-
Makoto Chiba
|
45
|
-
Manuel Bustillo
|
46
|
-
Marco Adkins
|
47
|
-
Micah Gates
|
48
|
-
Mike Eirih
|
49
|
-
Mike Pastore
|
50
|
-
Mingan
|
51
|
-
Mitch Birti
|
44
|
+
Brian Flethcer
|
45
|
+
Jurriaan Pruis
|
46
|
+
Erik Michaels-Ober
|
47
|
+
Matthew Simpson
|
48
|
+
Steven Davidovitz
|
52
49
|
Nicolas Leger
|
53
|
-
|
54
|
-
|
55
|
-
Arnaud Mesureur
|
56
|
-
Ariel Salomon
|
50
|
+
Pierre Michard
|
51
|
+
RahulBajaj
|
57
52
|
Rob Wygand
|
58
|
-
danielgrippi
|
59
53
|
Ryan Brushett
|
60
54
|
Ryan McIlmoyl
|
61
|
-
|
55
|
+
Ryan Metzler
|
56
|
+
Severin Schoepke
|
57
|
+
Shaun Guth
|
62
58
|
Steve Teti
|
63
|
-
|
59
|
+
T.J. Schuck
|
64
60
|
Taiki Sugawara
|
65
|
-
|
66
|
-
Alexandr Kostrikov
|
61
|
+
Takehiro Adachi
|
67
62
|
Tobias Haar
|
68
63
|
Toby Pinder
|
69
|
-
rono23
|
70
64
|
Tomé Duarte
|
71
65
|
Travis Hunter
|
72
|
-
Alexander Boyd
|
73
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é
|
74
91
|
Ernie Miller
|
75
92
|
Evgeni Golov
|
76
93
|
Ewoud Kohl van Wijngaarden
|
94
|
+
HoneyryderChuck
|
95
|
+
Igor Victor
|
77
96
|
Ilyaaaaaaaaaaaaa Zhitomirskiy
|
78
|
-
Dorian Marié
|
79
|
-
Dave Grijalva
|
80
97
|
Jens Hausherr
|
81
98
|
Jeremiah Wuenschel
|
82
|
-
Brandon Keepers
|
83
99
|
John Downey
|
100
|
+
Jordan Brough
|
84
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
|
data/Appraisals
CHANGED
@@ -1,18 +1,13 @@
|
|
1
|
-
|
2
|
-
end
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
|
-
appraise '
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
appraise 'rails-5.1' do
|
9
|
-
gem 'rails', '~> 5.1.0'
|
3
|
+
appraise 'standalone' do
|
4
|
+
# No additions
|
10
5
|
end
|
11
6
|
|
12
|
-
appraise '
|
13
|
-
gem '
|
7
|
+
appraise 'openssl' do
|
8
|
+
gem 'openssl', '~> 2.1'
|
14
9
|
end
|
15
10
|
|
16
|
-
appraise '
|
17
|
-
gem '
|
11
|
+
appraise 'rbnacl' do
|
12
|
+
gem 'rbnacl'
|
18
13
|
end
|