Class: Rack::Auth::Digest::Nonce
- Inherits:
-
Object
- Object
- Rack::Auth::Digest::Nonce
- Defined in:
- rack/rack/auth/digest/nonce.rb
Overview
Rack::Auth::Digest::Nonce is the default nonce generator for the Rack::Auth::Digest::MD5 authentication handler.
private_key
needs to set to a constant string.
time_limit
can be optionally set to an integer (number of
seconds), to limit the validity of the generated nonces.
Class Attribute Summary (collapse)
-
+ (void) private_key
Returns the value of attribute private_key.
-
+ (void) time_limit
Returns the value of attribute time_limit.
Class Method Summary (collapse)
Instance Method Summary (collapse)
- - (void) digest
- - (Boolean) fresh?
-
- (Nonce) initialize(timestamp = Time.now, given_digest = nil)
constructor
A new instance of Nonce.
- - (Boolean) stale?
- - (void) to_s
- - (Boolean) valid?
Constructor Details
- (Nonce) initialize(timestamp = Time.now, given_digest = nil)
Returns a new instance of Nonce
24 25 26 |
# File 'rack/rack/auth/digest/nonce.rb', line 24 def initialize( = Time.now, given_digest = nil) @timestamp, @given_digest = .to_i, given_digest end |
Class Attribute Details
+ (void) private_key
Returns the value of attribute private_key
17 18 19 |
# File 'rack/rack/auth/digest/nonce.rb', line 17 def private_key @private_key end |
+ (void) time_limit
Returns the value of attribute time_limit
17 18 19 |
# File 'rack/rack/auth/digest/nonce.rb', line 17 def time_limit @time_limit end |
Class Method Details
+ (void) parse(string)
20 21 22 |
# File 'rack/rack/auth/digest/nonce.rb', line 20 def self.parse(string) new(*string.unpack("m*").first.split(' ', 2)) end |
Instance Method Details
- (void) digest
32 33 34 |
# File 'rack/rack/auth/digest/nonce.rb', line 32 def digest ::Digest::MD5.hexdigest([ @timestamp, self.class.private_key ] * ':') end |
- (Boolean) fresh?
44 45 46 |
# File 'rack/rack/auth/digest/nonce.rb', line 44 def fresh? !stale? end |
- (Boolean) stale?
40 41 42 |
# File 'rack/rack/auth/digest/nonce.rb', line 40 def stale? !self.class.time_limit.nil? && (Time.now.to_i - @timestamp) > self.class.time_limit end |
- (void) to_s
28 29 30 |
# File 'rack/rack/auth/digest/nonce.rb', line 28 def to_s [([ @timestamp, digest ] * ' ')].pack("m*").strip end |
- (Boolean) valid?
36 37 38 |
# File 'rack/rack/auth/digest/nonce.rb', line 36 def valid? digest == @given_digest end |