Provided by: libauthen-simple-perl_0.5-1.1_all bug

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->log
                       log => $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 parameters

                   return $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 "chansen@cpan.org"

COPYRIGHT

       This program is free software, you can redistribute it and/or modify it under the same
       terms as Perl itself.