warden-jwt_auth 0.6.0 → 0.7.0

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
2
  SHA256:
3
- metadata.gz: d51f6ca62ae932ecce00a1302bcf89afa9e39a073d64e2e1ed8573b1f35ac887
4
- data.tar.gz: c412529d04dcb06a4360accaff043d5a11948ac6acc621f795b0d53087abe360
3
+ metadata.gz: d1d3eebd02efa288aa59f731fc3650a0c1deefe2922f35a606ce53f0fd16d0be
4
+ data.tar.gz: 8bdab56cf91544de74393491d842c34208b6028000c07a2187caf93f09887093
5
5
  SHA512:
6
- metadata.gz: 917659441336dbdd2f7dce8e4e29ac0ed278e7961ab1c6f209eed25e6e8d613b59154c302fd27695a2432c8cc9aa8bd09eca52958132ba96cb0d3590ee6bafa9
7
- data.tar.gz: e7acd7d7922d344056f16fc7412bbf2241780dafb573ba550915de60dc371738d63a70acf363778c7bcd38e6e5e38b78f2eb237c5b3d3448616e90e44dc54b26
6
+ metadata.gz: 8949c3f273247d3fbbf6bc034952d50ab58be7214c411fa6144ea190485b3c3963dac7f024ef9462b08f6240c64b7c9e11cade4d3ddb655419ce0c0cd88e1075
7
+ data.tar.gz: 05076d7b6e458c914cd974c8310820e80a5f0832e19e7b82303a6d75dd9e04a403b2fc19bc925d954d08229cafd6ac1a7d31316977bc08803f80981723dbca8c
@@ -0,0 +1 @@
1
+ github: waiting-for-dev
data/CHANGELOG.md CHANGED
@@ -4,7 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
- ## [0.6.0]
7
+ ## [0.7.0] - 2022-09-12
8
+ - Support asymmetric algorithms ([40](https://github.com/waiting-for-dev/warden-jwt_auth/issues/40))
9
+
10
+ ## [0.6.0] - 2021-09-21
8
11
  - Support ruby 3.0 and deprecate 2.5
9
12
  - Fixed dry-configurable compatibility. ([28](https://github.com/waiting-for-dev/warden-jwt_auth/issues/28))
10
13
 
data/README.md CHANGED
@@ -68,6 +68,16 @@ Warden::JWTAuth.configure do |config|
68
68
  end
69
69
  ```
70
70
 
71
+ If the algorithm is asymmetric (e.g. RS256) and necessitates a different decoding secret than the encoding secret, configure the `decoding_secret` setting as well.
72
+
73
+ ```ruby
74
+ Warden::JWTAuth.configure do |config|
75
+ config.secret = OpenSSL::PKey::RSA.new(ENV['WARDEN_JWT_PRIVATE_KEY'])
76
+ config.decoding_secret = OpenSSL::PKey::RSA.new(ENV['WARDEN_JWT_PUBLIC_KEY'])
77
+ config.algorithm = 'RS256' # or other asymmetric algorithm
78
+ end
79
+ ```
80
+
71
81
  ### Warden scopes configuration
72
82
 
73
83
  You have to map the warden scopes that will be authenticatable through JWT, with the user repositories from where these scope user records can be fetched. If a string is supplied, the user repository will first be looked up as a constant.
@@ -4,7 +4,7 @@ module Warden
4
4
  module JWTAuth
5
5
  # Decodes a JWT into a hash payload into a JWT token
6
6
  class TokenDecoder
7
- include JWTAuth::Import['secret', 'algorithm']
7
+ include JWTAuth::Import['decoding_secret', 'algorithm']
8
8
 
9
9
  # Decodes the payload from a JWT as a hash
10
10
  #
@@ -15,7 +15,7 @@ module Warden
15
15
  # @return [Hash] payload decoded from the JWT
16
16
  def call(token)
17
17
  JWT.decode(token,
18
- secret,
18
+ decoding_secret,
19
19
  true,
20
20
  algorithm: algorithm,
21
21
  verify_jti: true)[0]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Warden
4
4
  module JWTAuth
5
- VERSION = '0.6.0'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
@@ -41,6 +41,9 @@ module Warden
41
41
  # The secret used to encode the token
42
42
  setting :secret
43
43
 
44
+ # The secret used to decode the token, defaults to `secret` if not provided
45
+ setting :decoding_secret, constructor: ->(value) { value || config.secret }
46
+
44
47
  # The algorithm used to encode the token
45
48
  setting :algorithm, default: 'HS256'
46
49
 
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
+ spec.metadata['rubygems_mfa_required'] = 'true'
24
+
23
25
  spec.add_dependency 'dry-auto_inject', '~> 0.8'
24
26
  spec.add_dependency 'dry-configurable', '~> 0.13'
25
27
  spec.add_dependency 'jwt', '~> 2.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: warden-jwt_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Busqué
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-21 00:00:00.000000000 Z
11
+ date: 2022-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-auto_inject
@@ -201,6 +201,7 @@ extensions: []
201
201
  extra_rdoc_files: []
202
202
  files:
203
203
  - ".codeclimate.yml"
204
+ - ".github/FUNDING.yml"
204
205
  - ".gitignore"
205
206
  - ".rspec"
206
207
  - ".rubocop.yml"
@@ -237,7 +238,8 @@ files:
237
238
  homepage: https://github.com/waiting-for-dev/warden-jwt_auth
238
239
  licenses:
239
240
  - MIT
240
- metadata: {}
241
+ metadata:
242
+ rubygems_mfa_required: 'true'
241
243
  post_install_message:
242
244
  rdoc_options: []
243
245
  require_paths:
@@ -253,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
255
  - !ruby/object:Gem::Version
254
256
  version: '0'
255
257
  requirements: []
256
- rubygems_version: 3.1.2
258
+ rubygems_version: 3.0.3.1
257
259
  signing_key:
258
260
  specification_version: 4
259
261
  summary: JWT authentication for Warden.