Mercurial > pub > Impl
view Lib/IMPL/Web/Security.pm @ 79:2d1c3f713280
ORM concept in development
author | wizard |
---|---|
date | Mon, 05 Apr 2010 00:20:34 +0400 |
parents | 2f31ecabe9ea |
children | 077357224bec |
line wrap: on
line source
package IMPL::Web::Security; use base qw(IMPL::Object IMPL::Security IMPL::Object::Autofill); use IMPL::Class::Property; __PACKAGE__->PassThroughArgs; BEGIN { public property source => prop_all; } sub CTOR { my ($this) = @_; $this->dataSource or die new IMPL::InvalidArgumentException("The argument is required",'dataSource'); } sub RetrSession { my ($this,$sid) = @_; return $this->source->RetrSession(id => $sid); } sub RetrSecData { my ($this,$user,$secPackage) = @_; $user = ref $user ? $user->name : $user; return $this->source->RetrSecData(user => $user, package => $secPackage); } 1; __END__ =pod =head1 NAME 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 Отвечает за инфраструктуру аутентификации и авторизации запросов. Основная особенность заключается в том, что запросы приходят через значительные интевалы времени, хотя и относятся к одной логической транзакции. В промежутках между запросами сервер не сохраняет свое состояние. Поэтому при каждом обращении сервер восстанавливает контекст безопасности. C<IMPL::Web::Session> Объект обеспечивающий сохранение состояния в рамках одной сессии пользователя. Кроме контекста безопасности хранит дополнительние данные, которые необходимо сохранить между обработкой запросов. C<IMPL::Web::User> Объект, устанавливающий связь между идентификатором пользователя C<IMPL::Security::Principal>, его ролями и данными безопасности для создания объектов аутентификации C<IMPL::Security::Auth>. =head1 MEMBERS =cut