Mercurial > pub > Impl
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 |