Mercurial > pub > Impl
diff 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 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/Security.pm Tue Oct 09 03:09:41 2012 +0400 +++ b/Lib/IMPL/Web/Security.pm Tue Oct 09 20:12:47 2012 +0400 @@ -26,16 +26,11 @@ }; } - my ($status,$answer) = $auth->DoAuth($challenge); - - if ($status != AUTH_FAIL) { - SecurityContext->current->authority->InitSession( - $user, - $auth, - [$user->roles], - $answer - ); - } + my $status = SecurityContext->current->authority->InitSession( + $user, + $auth, + [$user->roles] + ); return { status => $status, @@ -69,37 +64,32 @@ C<IMPL::Web::Security> Модуль для аутентификации и авторизации веб запроса. -=head1 SINOPSYS - -=begin code xml - -<security type='IMPL::Config::Activator'> - <factory>IMPL::Web::Security</factory> - <parameters type='HASH'> - <sessionFactory type='IMPL::Object::Factory'> - <factory type='IMPL::Object::Factory'>App::Data::Session</factory> - <method>insert</method> - </sessionFactory> - </parameters> -</security> - -=end code xml - =head1 DESCRIPTION -Отвечает за инфраструктуру аутентификации и авторизации запросов. Основная особенность -заключается в том, что запросы приходят через значительные интевалы времени, хотя и -относятся к одной логической транзакции. В промежутках между запросами сервер не -сохраняет свое состояние. Поэтому при каждом обращении сервер восстанавливает -контекст безопасности. +Текущий модуль обеспечивает функции верхнего уровня для работы с системой +безопасности. Поскольку модуль является абстрактым, конкретные функции +хранения и реализацию объектов модели безопасности должно обеспечить само +приложение. + +Сама система безопасности в веб приложении состоит из двух частей + +=over + +=item Модель системы безопасности -C<IMPL::Web::Security::Session> Объект обеспечивающий сохранение состояния в рамках одной сессии -пользователя. Кроме контекста безопасности хранит дополнительние данные, которые необходимо -сохранить между обработкой запросов. +Предоставляет такие объкты безопасности, как пользователь, сессия роль, +определяет правила проверки прав доступа субъекта к объекту. + +=item Модуль безопасности -C<IMPL::Web::Security::User> Объект, устанавливающий связь между идентификатором пользователя -C<IMPL::Security::Principal>, его ролями и данными безопасности для создания объектов -аутентификации C<IMPL::Security::Auth>. +Как правило встраивается в транспортный уровеь в виде обработчика +C<IMPL::Web::Handler> и реализует непосредственно протокол аутентификации и +обмена с пользователем. + +Также модуль безопасности использует модель для хранения сессий и данных +аутентификции. Контекст безопасности создается именно этим модулем. + +=back =head1 MEMBERS