Mercurial > pub > Impl
view Lib/IMPL/Security/Auth.pm @ 70:2dfb0b0ad12f
More docs
author | wizard |
---|---|
date | Wed, 24 Mar 2010 17:42:04 +0300 |
parents | 8c7b88bdb663 |
children | d92d5ddaf524 |
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++); } } sub DoAuth { die new IMPL::NotImplementedException; } sub ValidateSession { die new IMPL::NotImplementedException; } 1; __END__ =pod =head1 DESCRIPTION Базовыйы объект для авторизации. Аутентификация носит итеративный характер, для чего создается объект аутентификации который сохраняет состояние между итерациями. Результатом аутентификации является сессия, состояние этой сессии также хранит объект аутентификации. В процессе авторизации клиент и сервер обмениеваются данными безопасности C<$challenge>. И результатом каждой итерации является либо упех (C<AUTH_SUCCESS>), либо запрос на продолжение (C<AUTH_INCOMPLETE>), либо неудача (C<AUTH_FAIL>). Количество итераций может быть разным, зависит от пакета аутентификации. =over =item C<CTOR($SecData)> Создает пакет для авторизации на основе данных безопасности для пользователя =item C<< $obj->DoAuth($Challenge) >> Производит аутентификацию пользователя и инициализацию сессии, возвращает результат аутентификации, в виде массива ($status,$challenge). =item C<< $obj->ValidateSession($Challenge) >> Производит аутентификацию сессии, возвращает результат аутентификации, в виде массива ($status,$challenge). =cut