Apache2-AuthCookieDBI
view release on metacpan or search on metacpan
lib/Apache2/AuthCookieDBI.pm view on Meta::CPAN
return $expire_time;
}
my ( $deltaday, $deltahour, $deltaminute, $deltasecond )
= split HYPHEN_REGEX, $session_lifetime;
# Figure out the expire time.
$expire_time = sprintf(
'%04d-%02d-%02d-%02d-%02d-%02d',
Add_Delta_DHMS( Today_and_Now, $deltaday, $deltahour,
$deltaminute, $deltasecond
)
);
return $expire_time;
}
sub logger {
my ( $class, $r, $log_level, $message, $user, $log_type, @extra_args ) = @_;
# $log_level should be an Apache constant, e.g. Apache2::Const::LOG_NOTICE
# Sub-classes should override this method if they want to implent their
# own logging strategy.
#
my @log_args = ( $message, @extra_args );
my %apache_log_method_for_level = (
Apache2::Const::LOG_DEBUG => 'debug',
Apache2::Const::LOG_INFO => 'info',
Apache2::Const::LOG_NOTICE => 'notice',
Apache2::Const::LOG_WARNING => 'warn',
Apache2::Const::LOG_ERR => 'error',
Apache2::Const::LOG_CRIT => 'crit',
Apache2::Const::LOG_ALERT => 'alert',
Apache2::Const::LOG_EMERG => 'emerg',
);
my $log_method = $apache_log_method_for_level{$log_level};
if ( !$log_method ) {
my ( $pkg, $file, $line, $sub ) = caller(1);
$r->log_error(
"Unknown log_level '$log_level' passed to logger() from $sub at line $line in $file "
);
$log_method = 'log_error';
}
$r->log->$log_method(@log_args);
}
1;
__END__
=head1 SUBCLASSING
You can subclass this module to override public functions and change
their behaviour.
=head1 CLASS METHODS
=head2 authen_cred($r, $user, $password, @extra_data)
Take the credentials for a user and check that they match; if so, return
a new session key for this user that can be stored in the cookie.
If there is a problem, return a bogus session key.
=head2 authen_ses_key($r, $encrypted_session_key)
Take a session key and check that it is still valid; if so, return the user.
=head2 decrypt_session_key($r, $encryptiontype, $encrypted_session_key, $secret_key)
Returns the decrypted session key or false on failure.
=head2 extra_session_info($r, $user, $password, @extra_data)
A stub method that you may want to override in a subclass.
This method returns extra fields to add to the session key.
It should return a string consisting of ":field1:field2:field3"
(where each field is preceded by a colon).
The default implementation returns an empty string.
=head2 group($r, $groups_string)
Take a string containing a whitespace-delimited list of groups and make sur
that the current remote user is a member of one of them.
Returns either I<Apache2::Const::HTTP_FORBIDDEN>
or I<Apache2::Const::OK>.
=head2 logger($r, $log_level, $message, $user, $log_type, @extra_args)
Calls one of the I<Apache::Log> methods with:
( $message, @extra_args )
for example, if the I<log_level> is I<Apache2::Const::LOG_DEBUG> then
this method will call:
$r->log->debug( $message, @extra_args )
Sub-classes may wish to override this method to perform their own
logging, for example to log to a database.
I<$log_level> is one of the constants:
Apache2::Const::LOG_DEBUG
Apache2::Const::LOG_INFO
Apache2::Const::LOG_NOTICE
Apache2::Const::LOG_WARNING
Apache2::Const::LOG_ERR
Apache2::Const::LOG_CRIT
Apache2::Const::LOG_ALERT
Apache2::Const::LOG_EMERG
I<$message> is a text string.
I<$user> should be the username, could be undef in some cases.
I<$log_type> is always undef when called in this module, but
sub-classes may wish to use it when they override this method.
( run in 0.793 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )