view Lib/IMPL/Security/Auth.pm @ 59:0f3e369553bd

Rewritten property implementation (probably become slower but more flexible) Configuration infrastructure in progress (in the aspect of the lazy activation) Initial concept for the code generator
author wizard
date Tue, 09 Mar 2010 02:50:45 +0300
parents 15d720913562
children 739f1288ca84
line wrap: on
line source

package IMPL::Security::Auth;

use Digest::MD5 qw(md5_hex);

use constant {
	AUTH_SUCCESS => 1,
	AUTH_INCOMPLETE => 2,
	AUT_FAIL => 3	
};

use base qw(Exporter);

our @EXPORT_OK = qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL &GenSSID);
our %EXPORT_TAGS = (Const => [qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL)]);

{
    my $i = 0;
    sub GenSSID() {
        return md5_hex(time,rand,$i++);
    }
}

1;

__END__

=pod

=head1 DESCRIPTION

Базовыйы модуль для авторизации пользователей.

Процесс авторизации состоит зи следующих шагов

1. Клиент отправляет на сервер запрос для авторизации с начальными параметрами.
2. Сервер получает запрос, находит данные аутентификации для клиента,
производит аутентификацию
3. Модуль аутентификации возвращает результат, на основе которого
либо формируется контекст безопасности, либо продолжается процесс аутентификации

Полученный контекст безопасности содержит объект для доступа к сессии аутентификации,
в которм содержится уникальные свойства сессии, например идентификатор, сеансовые ключи
и т.д. 

Пакет аутентификации должен иметь следующий интерфейс

=over

=item C<CTOR($SecData)>

Создает пакет для авторизации на основе данных безопасности для пользователя

=item C<< $obj->DoAuth($Challenge) >>

Производит аутентификацию пользователя и инициализацию сессии, возвращает результат аутентификации, в виде массива ($status,$challenge).

=item C<< $obj->ValidateSession($Challenge) >>

Производит аутентификацию сессии, возвращает результат аутентификации, в виде массива ($status,$challenge).

=cut