rack-cloudflare-jwt 0.0.8 → 0.0.9

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: 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