rack-cloudflare-jwt 0.0.8 → 0.0.9

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
2
  SHA256:
3
- metadata.gz: 8807abffbb32199316aeb4f761ed8a02121fae0d9266f089e26c36915dae4e68
4
- data.tar.gz: a8b9aab3800fdd456756db97879e68f00b038ee859cef52651cba6a94a6c83fe
3
+ metadata.gz: 2b2687d696920c000108afefaef5a1ca3362a1abee3a02d70394dbf58d3853c4
4
+ data.tar.gz: b70a5704eb4617eda9e0c7da2e16931dd259b7106394f74f8f62dc2d01771ad6
5
5
  SHA512:
6
- metadata.gz: a3174c2404f6ee89b0bb490e46096032bcddc3363d861f68770b3aa283fbbc5a5ba965d2e22d1c4f884dfe8234ad46906e366aed53109748a2b9e42a3c2dbd60
7
- data.tar.gz: cd693b7384c191681b9a5f02685677cacd386cd72b1b8dc3ab48f945b995bb4114e51390958970316c5801702a4d9d68f60f0bd07b29b329e7014c32e8a95e8b
6
+ metadata.gz: b0d36f13a6ad4d5dbff4b389026f45c14a1952540058d616d859d60e4016dcb35a2c3899b42a93cd15204e233b267f9687c3664df4199f71e980b48fc85b1ce9
7
+ data.tar.gz: f0e6d960ae41120b05d71888d92bc134202186b539126753c0d51d60b34a6a6d964383b809fea8cf63353b4cf499b2556350201c3f14d1ee7fcfc0369853b477
@@ -172,9 +172,7 @@ module Rack
172
172
  # @return [Array<OpenSSL::PKey::RSA>] the public keys.
173
173
  def public_keys(env)
174
174
  host = env[HEADER_HTTP_HOST]
175
- # Store a keys in the cache only 10 minutes.
176
- keys = cache.fetch([self.class.name, '#secrets', host], expires_in: 600) { fetch_public_keys(host) }
177
- keys.map do |jwk_data|
175
+ fetch_public_keys_cached(host).map do |jwk_data|
178
176
  ::JWT::JWK.import(jwk_data).keypair
179
177
  end
180
178
  end
@@ -191,18 +189,35 @@ module Rack
191
189
  []
192
190
  end
193
191
 
194
- # Private: Get a cache store.
192
+ # Private: Get cached public keys.
195
193
  #
196
- # @return [ActiveSupport::Cache::Store] the cache store.
197
- def cache
198
- Rails.cache
194
+ # Store a keys in the cache only 10 minutes.
195
+ #
196
+ # @param host [String] The host.
197
+ #
198
+ # @return [Array<Hash>] the public keys.
199
+ def fetch_public_keys_cached(host)
200
+ key = [self.class.name, '#secrets', host].join('_')
201
+
202
+ if defined? Rails
203
+ Rails.cache.fetch(key, expires_in: 600) { fetch_public_keys(host) }
204
+ elsif defined? Padrino
205
+ keys = Padrino.cache[key]
206
+ keys || Padrino.cache.store(key, fetch_public_keys(host), expires: 600)
207
+ else
208
+ fetch_public_keys(host)
209
+ end
199
210
  end
200
211
 
201
212
  # Private: Get a logger.
202
213
  #
203
214
  # @return [ActiveSupport::Logger] the logger.
204
215
  def logger
205
- Rails.logger
216
+ if defined? Rails
217
+ Rails.logger
218
+ elsif defined? Padrino
219
+ Padrino.logger
220
+ end
206
221
  end
207
222
  end
208
223
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rack
4
4
  module CloudflareJwt
5
- VERSION = '0.0.8'
5
+ VERSION = '0.0.9'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-cloudflare-jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksei Vokhmin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-26 00:00:00.000000000 Z
11
+ date: 2020-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -196,7 +196,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
198
  requirements: []
199
- rubygems_version: 3.0.3
199
+ rubyforge_project:
200
+ rubygems_version: 2.7.8
200
201
  signing_key:
201
202
  specification_version: 4
202
203
  summary: Rack middleware that provides authentication based on CloudFlare JSON Web