NAME
MPMinusX::AuthSsn - MPMinus AAA via Apache::Session and DBD::SQLite
VERSION
Version 1.01
SYNOPSIS
use MPMinusX::AuthSsn;
# AuthSsn session
my $ssn;
... see description ...
sub hCleanup {
...
undef $ssn;
...
}
ABSTRACT
MPMinusX::AuthSsn - MPMinus AAA via Apache::Session and DBD::SQLite
DESCRIPTION
Methods of using
METHOD #1. MPMINUS HANDLERS LEVEL (RECOMENDED)
sub hInit {
...
my $usid = $usr{usid} || $q->cookie('usid') || '';
$ssn = new MPMinusX::AuthSsn( $m, $usid );
...
}
sub hResponse {
...
my $access = $ssn->access( sub {
my $self = shift;
return $self->status(0, 'FORBIDDEN') if $self->get('login') eq 'admin';
} );
if ($access) {
# Auhorized!
$h{login} = $ssn->get('login');
}
$template->cast_if("authorized", $access);
....
}
METHOD #2. MPMINUS TRANSACTION LEVEL
sub default_access {
my $usid = $usr{usid} || $q->cookie('usid') || '';
$ssn = new MPMinusX::AuthSsn( $m, $usid );
return $ssn->access();
}
sub default_deny {
my $m = shift;
my $r = $m->r;
$r->headers_out->set(Location => "/auth.mpm");
return Apache2::Const::REDIRECT;
}
sub default_form {
...
$h{login} = $ssn->get('login');
...
}
METHODS
new
my $authssn = new MPMinusX::AuthSsn( $m, $sid, $expires );
Returns object
authen
$ssn->authen( $callback, ...arguments... );
AAA Authentication.
The method returns status operation: 1 - successfully; 0 - not
successfully
authz
$ssn->authz( $callback, ...arguments... );
AAA Authorization.
The method returns status operation: 1 - successfully; 0 - not
successfully
access
$ssn->access( $callback, ...arguments... );
AAA Accounting (AAA Access).
The method returns status operation: 1 - successfully; 0 - not
successfully
get
$ssn->get( $key );
Returns session value by $key
set
$ssn->set( $key, $value );
Sets session value by $key
delete
$ssn->delete();
Delete the session
sid, usid
$ssn->sid();
Returns current usid value
expires
$ssn->expires();
Returns current expires value
status
$ssn->status();
$ssn->status( $newstatus, $reason );
Returns status of a previously executed operation. If you specify
$reason, there will push installation $newstatus
reason
$ssn->reason();
Returns reason of a previously executed operation.
Now supported following values: DEFAULT, OK, UNAUTHORIZED, ERROR,
SERVER_ERROR, NEW, TIMEOUT, LOGIN_INCORRECT, PASSWORD_INCORRECT,
DECLINED, AUTH_REQUIRED, FORBIDDEN.
For translating this values to regular form please use method
reason_translate like that
init
$ssn->init( $usid, $needcreate );
Internal method. Please do not use it
Method returns status operation: 1 - successfully; 0 - not
successfully
toexpire
$ssn->toexpire( $time );
Returns expiration interval relative to ctime() form.
If used with no arguments, returns the expiration interval if it was
ever set. If no expiration was ever set, returns undef.
All the time values should be given in the form of seconds. Following
keywords are also supported for your convenience:
+-----------+---------------+
| alias | meaning |
+-----------+---------------+
| s | Second |
| m | Minute |
| h | Hour |
| d | Day |
| w | Week |
| M | Month |
| y | Year |
+-----------+---------------+
Examples:
$ssn->toexpire("2h"); # expires in two hours
$ssn->toexpire(3600); # expires in one hour
Note: all the expiration times are relative to session's last access
time, not to its creation time. To expire a session immediately, call
delete() method.
CONFIGURATION
Sample in file conf/auth.conf:
expires +3m
#sidkey usid
#tplkey authorized
#tplpfx auth
#file /document_root/session.db
#dsn dbi:SQLite:dbname=/document_root/session.db
HISTORY
See Changes file
DEPENDENCIES
MPMinus
TO DO
See TODO file
BUGS
* none noted
SEE ALSO
MPMinus, CTK, Apache::Session, DBD::SQLite
AUTHOR
Serż Minus (Sergey Lepenkov) http://www.serzik.com
COPYRIGHT
Copyright (C) 1998-2019 D&D Corporation. All Rights Reserved
LICENSE
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See LICENSE file and https://dev.perl.org/licenses/