NAME
Authen::Simple::Adapter - Adapter class for implementations
SYNOPSIS
package Authenticate::Simple::Larry;use strict;use base 'Authen::Simple::Adapter';__PACKAGE__->options({secret => {type => Params::Validate::SCALAR,default => 'wall',optional => 1}});sub check {my ( $self, $username, $password ) = @_;if ( $username eq 'larry' && $password eq $self->secret ) {$self->log->debug( qq/Successfully authenticated user '$username'./ )if $self->log;return 1;}$self->log->debug( qq/Failed to authenticate user '$username'. Reason: 'Invalid credentials'/ )if $self->log;return 0;}1;
DESCRIPTION
Adapter class for implementations.
METHODS
- •
-
new (
%parameters)If overloaded, this method should take a hash of parameters. The following options should be valid:
- •
-
cache ( $ )
Any object that supports
"get","set". Only successful authentications are cached.cache => Cache::FastMmap->new
- •
-
callback ( \& )
A subref that gets called with two scalar references, username and password.
callback = sub {my ( $username, $password ) = @_;if ( length($$password) < 6 ) {return 0; # abort, invalid credintials}if ( $$password eq 'secret' ) {return 1; # abort, successful authentication}return; # proceed;}
- •
-
log ( $ )
Any object that supports
"debug","info","error"and"warn".log => Log::Log4perl->get_logger('Authen::Simple')log => $r->loglog => $r->server->log
- •
-
init ( \%parameters )
This method is called after construction. It should assign parameters and return the instance.
sub init {my ( $self, $parameters ) = @_;# mock with parametersreturn $self->SUPER::init($parameters);}
- •
-
authenticate (
$username,$password)End user method. Applies callback, checks cache and calls
"check"unless aborted by callback or a cache hit.
- •
-
check (
$username,$password)Must be implemented in sublcass, should return true on success and false on failure.
- •
-
check_password(
$password,$encrypted)
- •
-
options ( \%options )
Must be set in subclass, should be a valid Params::Validate specification. Accessors for options will be created unless defined in sublcass.
__PACKAGE__->options({host => {type => Params::Validate::SCALAR,optional => 0},port => {type => Params::Validate::SCALAR,default => 80,optional => 1}});
SEE ALSO
Authen::Simple
Authen::Simple::Password
Params::Validate
AUTHOR
Christian Hansen "[email protected]"
COPYRIGHT
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.