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