Module CASServer::Authenticators::SQLEncrypted::EncryptedPassword
In: lib/casserver/authenticators/sql_encrypted.rb

Include this module into your application‘s user model.

Your model must have an ‘encrypted_password’ column where the password will be stored, and an ‘encryption_salt’ column that will be populated with a random string before the user record is first created.

Methods

Public Class methods

[Source]

    # File lib/casserver/authenticators/sql_encrypted.rb, line 21
21:     def self.included(mod)
22:       raise "#{self} should be inclued in an ActiveRecord class!" unless mod.respond_to?(:before_save)
23:       mod.before_save :generate_encryption_salt
24:     end

Public Instance methods

[Source]

    # File lib/casserver/authenticators/sql_encrypted.rb, line 26
26:     def encrypt(str)
27:       generate_encryption_salt unless encryption_salt
28:       Digest::SHA256.hexdigest("#{encryption_salt}::#{str}")
29:     end

[Source]

    # File lib/casserver/authenticators/sql_encrypted.rb, line 35
35:     def generate_encryption_salt
36:       self.encryption_salt = Digest::SHA1.hexdigest(Crypt::ISAAC.new.rand(2**31).to_s) unless
37:         encryption_salt
38:     end

[Source]

    # File lib/casserver/authenticators/sql_encrypted.rb, line 31
31:     def password=(password)
32:       self[:encrypted_password] = encrypt(password)
33:     end

[Validate]