jwt_signed_request 2.4.0 → 2.4.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 +5 -5
- data/lib/jwt_signed_request.rb +2 -0
- data/lib/jwt_signed_request/claims.rb +2 -0
- data/lib/jwt_signed_request/errors.rb +3 -0
- data/lib/jwt_signed_request/headers.rb +2 -0
- data/lib/jwt_signed_request/key_store.rb +2 -0
- data/lib/jwt_signed_request/middlewares/faraday.rb +2 -0
- data/lib/jwt_signed_request/middlewares/rack.rb +2 -0
- data/lib/jwt_signed_request/sign.rb +2 -0
- data/lib/jwt_signed_request/verify.rb +13 -0
- data/lib/jwt_signed_request/version.rb +3 -1
- metadata +15 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 223bee2fbebac240f4545a6743a8142caa85e53368888efcd15b122d879fb0aa
|
4
|
+
data.tar.gz: eda9041c02891f02c67f88b0b5d5877a8540c89bc619212ebb06507d5c1a44f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f6b10faac1fb80562ed2f9240cf32f96b96c81b2ee04b2bd097cc53714a45f420411a94bfa8bf541fe81e5103a23aad185ba88dfa0aec679f4ad03d493be626
|
7
|
+
data.tar.gz: 1dabc24f6f7476b4fddeebd6662d81e63f93ff9fa5caad5ff93f8214c82586b1a83e8070c054dc4df381d13d2218b551a6e0ab303cab78f8f26588aea14c7535
|
data/lib/jwt_signed_request.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module JWTSignedRequest
|
2
4
|
UnauthorizedRequestError = Class.new(StandardError)
|
3
5
|
MissingAuthorizationHeaderError = Class.new(UnauthorizedRequestError)
|
@@ -11,6 +13,7 @@ module JWTSignedRequest
|
|
11
13
|
RequestQueryVerificationFailedError = Class.new(RequestVerificationFailedError)
|
12
14
|
|
13
15
|
MissingKeyIdError = Class.new(UnauthorizedRequestError)
|
16
|
+
MissingAlgorithmError = Class.new(UnauthorizedRequestError)
|
14
17
|
UnknownKeyIdError = Class.new(UnauthorizedRequestError)
|
15
18
|
AlgorithmMismatchError = Class.new(UnauthorizedRequestError)
|
16
19
|
end
|
@@ -1,5 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'jwt_signed_request/headers'
|
2
4
|
require 'jwt_signed_request/errors'
|
5
|
+
require 'jwt/version'
|
3
6
|
|
4
7
|
module JWTSignedRequest
|
5
8
|
class Verify
|
@@ -39,6 +42,10 @@ module JWTSignedRequest
|
|
39
42
|
end
|
40
43
|
end
|
41
44
|
|
45
|
+
def algorithm
|
46
|
+
@algorithm ||= stored_key.fetch(:algorithm) { raise MissingAlgorithmError }
|
47
|
+
end
|
48
|
+
|
42
49
|
def secret_key
|
43
50
|
@secret_key ||= stored_key.fetch(:key) { raise MissingKeyIdError }
|
44
51
|
end
|
@@ -52,6 +59,8 @@ module JWTSignedRequest
|
|
52
59
|
verify = true
|
53
60
|
options = {}
|
54
61
|
|
62
|
+
options[:algorithm] = algorithm if jwt_algorithm_required?
|
63
|
+
|
55
64
|
if leeway
|
56
65
|
# TODO: Once JWT v2.0.0 has been released, we should upgrade to it
|
57
66
|
# and start using `exp_leeway` instead 'leeway' will still work, but
|
@@ -124,5 +133,9 @@ module JWTSignedRequest
|
|
124
133
|
def request_query_values
|
125
134
|
standard_query_values(URI.parse(request.fullpath))
|
126
135
|
end
|
136
|
+
|
137
|
+
def jwt_algorithm_required?
|
138
|
+
JWT::VERSION::MAJOR >= 2
|
139
|
+
end
|
127
140
|
end
|
128
141
|
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jwt_signed_request
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Envato
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.5.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.2.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 1.5.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.2.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rack
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,7 +134,10 @@ files:
|
|
128
134
|
- lib/jwt_signed_request/version.rb
|
129
135
|
homepage: https://github.com/envato/jwt_signed_request
|
130
136
|
licenses: []
|
131
|
-
metadata:
|
137
|
+
metadata:
|
138
|
+
bug_tracker_uri: https://github.com/envato/jwt_signed_request/issues
|
139
|
+
changelog_uri: https://github.com/envato/jwt_signed_request/blob/master/CHANGELOG.md
|
140
|
+
source_code_uri: https://github.com/envato/jwt_signed_request
|
132
141
|
post_install_message:
|
133
142
|
rdoc_options: []
|
134
143
|
require_paths:
|
@@ -145,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
154
|
version: '0'
|
146
155
|
requirements: []
|
147
156
|
rubyforge_project:
|
148
|
-
rubygems_version: 2.
|
157
|
+
rubygems_version: 2.7.6
|
149
158
|
signing_key:
|
150
159
|
specification_version: 4
|
151
160
|
summary: JWT request signing and verification for Internal APIs
|