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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f1437c1fe1c8ace216bfb4794b2d8f434383a6a0
4
- data.tar.gz: 8f6cf18fe5b27219e659e53495308324494f20e8
2
+ SHA256:
3
+ metadata.gz: 223bee2fbebac240f4545a6743a8142caa85e53368888efcd15b122d879fb0aa
4
+ data.tar.gz: eda9041c02891f02c67f88b0b5d5877a8540c89bc619212ebb06507d5c1a44f5
5
5
  SHA512:
6
- metadata.gz: 17a865b7d0439a4cebdb9f7a280729681ff442e05c52c722b81f792a2b33fa62050b89cf1c4b69c6ede112d62d4967f64d7915553396b2ec934bda5cb9eafac5
7
- data.tar.gz: 2755fcdccfb5f398647d97699a7082196b723b2ff32e41700691dc8348e697c138edc09193be2fa495dec904cfbdbda06832b207b98caa0d2856e2242b6b75c2
6
+ metadata.gz: 2f6b10faac1fb80562ed2f9240cf32f96b96c81b2ee04b2bd097cc53714a45f420411a94bfa8bf541fe81e5103a23aad185ba88dfa0aec679f4ad03d493be626
7
+ data.tar.gz: 1dabc24f6f7476b4fddeebd6662d81e63f93ff9fa5caad5ff93f8214c82586b1a83e8070c054dc4df381d13d2218b551a6e0ab303cab78f8f26588aea14c7535
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'jwt'
2
4
  require 'jwt_signed_request/key_store'
3
5
  require 'jwt_signed_request/sign'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'digest'
2
4
  require 'json'
3
5
  require 'rack/utils'
@@ -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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # We need a way to pull out the headers from a RAW Rack ENV hash.
2
4
  #
3
5
  # We took out the bits we need to lookup the headers from:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JWTSignedRequest
2
4
  class KeyStore
3
5
  def initialize
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'faraday'
2
4
  require 'jwt_signed_request'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rack'
2
4
  require 'jwt_signed_request'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'jwt_signed_request/claims'
2
4
 
3
5
  module JWTSignedRequest
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JWTSignedRequest
2
- VERSION = "2.4.0".freeze
4
+ VERSION = '2.4.1'.freeze
3
5
  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.0
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: 2018-07-24 00:00:00.000000000 Z
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.5.1
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