Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7965

Show
Ignore:
Timestamp:
10/18/07 18:20:54 (9 months ago)
Author:
bitsweat
Message:

Increase randomness of TokenGenerator#generate_token by reusing CGI::Session.generate_unique_id. Closes #9622 [rmm5t, Jeremy Kemper]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/token_generator/lib/token_generator.rb

    r4378 r7965  
    11module TokenGenerator 
    22  def generate_token(size = 12, &validity) 
     3    constant = "#{self.class.name}#{id}" 
     4 
    35    begin 
    4       token = Digest::MD5.hexdigest("#{inspect}#{Time.now}").first(size
     6      token = CGI::Session.generate_unique_id(constant
    57    end while !validity.call(token) if block_given? 
    6      
     8 
    79    token 
    810  end 
    9    
     11 
    1012  def set_token 
    1113    self.token = generate_token { |token| self.class.find_by_token(token).nil? }