Module: WillSign

Defined in:
lib/will_sign.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_expiryObject

maximum allowed expiry



5
6
7
# File 'lib/will_sign.rb', line 5

def self.default_expiry
  @default_expiry ||= 300
end

.default_expiry=(value) ⇒ Object



9
10
11
# File 'lib/will_sign.rb', line 9

def self.default_expiry=(value)
  @default_expiry = value.to_i
end

Instance Method Details

#sign_url(url, expiry = WillSign.default_expiry) ⇒ Object

creates a header value like TIME:HASH



16
17
18
19
20
# File 'lib/will_sign.rb', line 16

def sign_url(url, expiry = WillSign.default_expiry)
  expiry = (Time.now.utc + expiry).to_i.to_s
  pieces = split_url url
  create_hash_from_url_and_expiry pieces, expiry
end

#signed_url?(url, given) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
26
27
28
29
30
31
# File 'lib/will_sign.rb', line 22

def signed_url?(url, given)
  return false if url.nil? || given.nil? || given.size.zero?
  expiry, hash = given.split(":")
  expiry = expiry.to_i
  now    = Time.now.utc.to_i
  return false if expiry < now
  pieces = split_url url
  result = create_hash_from_url_and_expiry pieces, expiry
  result == given
end