comparison Lib/IMPL/Security/Auth.pm @ 230:6d8092d8ce1b

*reworked IMPL::Security *reworked IMPL::Web::Security *refactoring
author sergey
date Mon, 08 Oct 2012 03:37:37 +0400
parents 4d0e1962161c
children 6cb0d4d325d7
comparison
equal deleted inserted replaced
229:47f77e6409f7 230:6d8092d8ce1b
1 package IMPL::Security::Auth; 1 package IMPL::Security::Auth;
2 use strict;
2 3
3 use Digest::MD5 qw(md5_hex); 4 use Digest::MD5 qw(md5_hex);
4 5
5 use constant { 6 use constant {
6 AUTH_SUCCESS => 1, 7 AUTH_SUCCESS => 1,
13 our @EXPORT_OK = qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL &GenSSID); 14 our @EXPORT_OK = qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL &GenSSID);
14 our %EXPORT_TAGS = (Const => [qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL)]); 15 our %EXPORT_TAGS = (Const => [qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL)]);
15 16
16 { 17 {
17 my $i = 0; 18 my $i = 0;
18 sub GenSSID() { 19 sub GenSSID {
19 return md5_hex(time,rand,$i++); 20 return md5_hex(time,rand,$i++);
20 } 21 }
21 } 22 }
22 23
23 sub DoAuth { 24 sub DoAuth {
24 die new IMPL::NotImplementedException;
25 }
26
27 sub ValidateSession {
28 die new IMPL::NotImplementedException; 25 die new IMPL::NotImplementedException;
29 } 26 }
30 27
31 sub isTrusted { 28 sub isTrusted {
32 0; 29 0;
44 41
45 =pod 42 =pod
46 43
47 =head1 NAME 44 =head1 NAME
48 45
49 C<IMPL::Security::Auth> Базовыйы класс для пакетов аутентификации. 46 C<IMPL::Security::Auth> Базовыйы класс для объектов аутентификации.
50 47
51 =head1 DESCRIPTION 48 =head1 DESCRIPTION
52 49
53 C<[Abstract]> 50 C<[Abstract]>
54 51
55 Аутентификация носит итеративный характер, для чего создается объект аутентификации который 52 Объект аутентификации служет для аутентификации клиента, в случае успеха
56 сохраняет состояние между итерациями. 53 образуется сессия идентифицирующая клиента, которая представлена на стороне
54 сервера объектом аутентификации.
55
56 Аутентификация носит итеративный характер, объект аутентификации сохраняет
57 состояние между итерациями.
57 58
58 Результатом аутентификации является сессия, состояние этой сессии также хранит объект 59 Результатом аутентификации является сессия, состояние этой сессии также хранит объект
59 аутентификации. 60 аутентификации.
60 61
61 В процессе авторизации клиент и сервер обмениеваются данными безопасности C<$challenge>. 62 В процессе авторизации клиент и сервер обмениеваются данными безопасности C<$challenge>.
98 Создает пакет для авторизации на основе данных безопасности для пользователя. 99 Создает пакет для авторизации на основе данных безопасности для пользователя.
99 C<$SecData> - Зависит от пакета аутентификации. 100 C<$SecData> - Зависит от пакета аутентификации.
100 101
101 =item C<[get] isTrusted> 102 =item C<[get] isTrusted>
102 103
103 Флаг того, что аутентификация закончена успешно. 104 Флаг того, что аутентификация закончена успешно и сессия создана. Данный объект
105 может быть создан для аутентификации сессии.
104 106
105 =item C<DoAuth($challenge)> 107 =item C<DoAuth($challenge)>
106 108
107 Производит аутентификацию пользователя и инициализацию сессии, 109 Производит аутентификацию пользователя, возвращает результат
108 возвращает результат аутентификации, в виде массива ($status,$challenge). 110 аутентификации, в виде массива ($status,$challenge).
109 111
110 После успешной аутентификации пользователь получает данные C<$challenge> 112 Даже после успешной аутентификации полученные данные C<$challenge> должны быть
111 для аутентификации сессии. 113 отправлены клиенту для завершения аутентификации на стороне клиента.
112
113 =item C<ValidateSession($challenge)>
114
115 Производит аутентификацию сессии, возвращает результат аутентификации,
116 в виде массива ($status,$challenge).
117 114
118 =item C<[static] CreateSecData(%args)> 115 =item C<[static] CreateSecData(%args)>
119 116
120 Создает данные безопасности, на основе параметров. Параметры зависят от пакета аутентификации. 117 Создает данные безопасности, на основе параметров. Параметры зависят от пакета
118 аутентификации.
121 119
122 =item C<[static] Create(%args)> 120 =item C<[static] Create(%args)>
123 121
124 Создает объект аутентификации, на основе параметров. Параметры зависят от пакета аутентификации. 122 Создает объект аутентификации, на основе параметров. Параметры зависят от
125 Внутри вызывает метод C<CreateSecData(%args)>. 123 пакета аутентификации. Внутри вызывает метод C<CreateSecData(%args)>.
126 124
127 =item C<[static] SecDataArgs()> 125 =item C<[static] SecDataArgs()>
128 126
129 Возвращает хеш с описанием параметров для функции C<CreateSecData>. Ключами являются 127 Возвращает хеш с описанием параметров для функции C<CreateSecData>.
130 имена параметров, значениями - типы. 128 Ключами являются имена параметров, значениями - типы.
131 129
132 =back 130 =back
133 131
134 =cut 132 =cut