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 |