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 +4 -4
- data/lib/rack/cloudflare_jwt/auth.rb +23 -8
- data/lib/rack/cloudflare_jwt/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b2687d696920c000108afefaef5a1ca3362a1abee3a02d70394dbf58d3853c4
|
4
|
+
data.tar.gz: b70a5704eb4617eda9e0c7da2e16931dd259b7106394f74f8f62dc2d01771ad6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
192
|
+
# Private: Get cached public keys.
|
195
193
|
#
|
196
|
-
#
|
197
|
-
|
198
|
-
|
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
|
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
|
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.
|
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-
|
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
|
-
|
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
|