jwt_signed_request 2.4.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
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