comparison Lib/IMPL/Web/Security.pm @ 232:5c82eec23bb6

Fixed degradations due refactoring
author sergey
date Tue, 09 Oct 2012 20:12:47 +0400
parents ff1e8fa932f2
children 3cebcf6fdb9b
comparison
equal deleted inserted replaced
231:ff1e8fa932f2 232:5c82eec23bb6
24 status => AUTH_FAIL, 24 status => AUTH_FAIL,
25 user => $user 25 user => $user
26 }; 26 };
27 } 27 }
28 28
29 my ($status,$answer) = $auth->DoAuth($challenge); 29 my $status = SecurityContext->current->authority->InitSession(
30 30 $user,
31 if ($status != AUTH_FAIL) { 31 $auth,
32 SecurityContext->current->authority->InitSession( 32 [$user->roles]
33 $user, 33 );
34 $auth,
35 [$user->roles],
36 $answer
37 );
38 }
39 34
40 return { 35 return {
41 status => $status, 36 status => $status,
42 user => $user 37 user => $user
43 }; 38 };
67 62
68 =head1 NAME 63 =head1 NAME
69 64
70 C<IMPL::Web::Security> Модуль для аутентификации и авторизации веб запроса. 65 C<IMPL::Web::Security> Модуль для аутентификации и авторизации веб запроса.
71 66
72 =head1 SINOPSYS
73
74 =begin code xml
75
76 <security type='IMPL::Config::Activator'>
77 <factory>IMPL::Web::Security</factory>
78 <parameters type='HASH'>
79 <sessionFactory type='IMPL::Object::Factory'>
80 <factory type='IMPL::Object::Factory'>App::Data::Session</factory>
81 <method>insert</method>
82 </sessionFactory>
83 </parameters>
84 </security>
85
86 =end code xml
87
88 =head1 DESCRIPTION 67 =head1 DESCRIPTION
89 68
90 Отвечает за инфраструктуру аутентификации и авторизации запросов. Основная особенность 69 Текущий модуль обеспечивает функции верхнего уровня для работы с системой
91 заключается в том, что запросы приходят через значительные интевалы времени, хотя и 70 безопасности. Поскольку модуль является абстрактым, конкретные функции
92 относятся к одной логической транзакции. В промежутках между запросами сервер не 71 хранения и реализацию объектов модели безопасности должно обеспечить само
93 сохраняет свое состояние. Поэтому при каждом обращении сервер восстанавливает 72 приложение.
94 контекст безопасности.
95 73
96 C<IMPL::Web::Security::Session> Объект обеспечивающий сохранение состояния в рамках одной сессии 74 Сама система безопасности в веб приложении состоит из двух частей
97 пользователя. Кроме контекста безопасности хранит дополнительние данные, которые необходимо
98 сохранить между обработкой запросов.
99 75
100 C<IMPL::Web::Security::User> Объект, устанавливающий связь между идентификатором пользователя 76 =over
101 C<IMPL::Security::Principal>, его ролями и данными безопасности для создания объектов 77
102 аутентификации C<IMPL::Security::Auth>. 78 =item Модель системы безопасности
79
80 Предоставляет такие объкты безопасности, как пользователь, сессия роль,
81 определяет правила проверки прав доступа субъекта к объекту.
82
83 =item Модуль безопасности
84
85 Как правило встраивается в транспортный уровеь в виде обработчика
86 C<IMPL::Web::Handler> и реализует непосредственно протокол аутентификации и
87 обмена с пользователем.
88
89 Также модуль безопасности использует модель для хранения сессий и данных
90 аутентификции. Контекст безопасности создается именно этим модулем.
91
92 =back
103 93
104 =head1 MEMBERS 94 =head1 MEMBERS
105 95
106 =cut 96 =cut