Module: SignedUrl
- Defined in:
- lib/signed_url.rb,
lib/signed_url/version.rb
Defined Under Namespace
Classes: UrlEncoder
Constant Summary collapse
- VERSION =
'0.1.3'
Class Attribute Summary collapse
-
.encoder ⇒ Object
Returns the value of attribute encoder.
Class Method Summary collapse
- .configure {|encoder| ... } ⇒ Object
- .generate(path:, expires:) ⇒ Object
- .validate(key_id:, secret:, path:, host:, expires:, request_url:) ⇒ Object
Class Attribute Details
.encoder ⇒ Object
Returns the value of attribute encoder.
8 9 10 |
# File 'lib/signed_url.rb', line 8 def encoder @encoder end |
Class Method Details
.configure {|encoder| ... } ⇒ Object
10 11 12 13 |
# File 'lib/signed_url.rb', line 10 def configure self.encoder ||= UrlEncoder.new yield(encoder) end |
.generate(path:, expires:) ⇒ Object
15 16 17 |
# File 'lib/signed_url.rb', line 15 def generate(path:, expires:) encoder.encode(path: path, expires: expires) end |
.validate(key_id:, secret:, path:, host:, expires:, request_url:) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/signed_url.rb', line 19 def validate(key_id:, secret:, path:, host:, expires:, request_url:) validating_encoder = UrlEncoder.new validating_encoder.host = host validating_encoder.key_id = key_id validating_encoder.secret = secret url_matched = (request_url == validating_encoder.encode(path: path, expires: expires)) time_in_the_future = Time.at(expires.to_i).utc > Time.now.utc url_matched && time_in_the_future end |