Module: DRbService::PasswordAuthentication

Defined in:
lib/drbservice/passwordauth.rb

Overview

An authentication strategy for DRbService -- set a password via a class method.

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object

Overridden mixin callback -- add the ClassMethods to the including class



30
31
32
33
# File 'lib/drbservice/passwordauth.rb', line 30

def self::included( klass )
  super
  klass.extend( ClassMethods )
end

Instance Method Details

#authenticate(password) ⇒ Object

authentication succeeds. Raises a SecurityError if authentication fails. If no password is set, the block is called regardless of what the password is.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/drbservice/passwordauth.rb', line 39

def authenticate( password )
  if digest = self.class.password_digest
    if Digest::SHA2.hexdigest( password ) == digest
      self.log.info "authentication successful"
      @authenticated = true
      yield
    else
      super
    end
  else
    self.log.error "no password set -- authentication will always fail"
    super
  end
ensure
  @authenticated = false
end