Mercurial > pub > Impl
view 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 source
package IMPL::Web::Security; use strict; use IMPL::Security::Auth qw(:Const); use IMPL::declare { require => { Exception => 'IMPL::Exception', NotImplementedException => '-IMPL::NotImplementedException', SecurityContext => 'IMPL::Security::AbstractContext' }, }; sub AuthUser { my ($this,$name,$package,$challenge) = @_; my $user = $this->FindUserByName($name) or return { status => AUTH_FAIL, answer => "Can't find a user '$name'" }; my $auth; if ( my $secData = $user->GetSecData($package) ) { $auth = $package->new($secData); } else { return { status => AUTH_FAIL, user => $user }; } my $status = SecurityContext->current->authority->InitSession( $user, $auth, [$user->roles] ); return { status => $status, user => $user }; } sub FindUserByName { die NotImplementedException->new(); } sub CreateSession { die NotImplementedException->new(); } sub GetSession { die NotImplementedException->new(); } sub SaveSession { die NotImplementedException->new(); } 1; __END__ =pod =head1 NAME C<IMPL::Web::Security> Модуль для аутентификации и авторизации веб запроса. =head1 DESCRIPTION Текущий модуль обеспечивает функции верхнего уровня для работы с системой безопасности. Поскольку модуль является абстрактым, конкретные функции хранения и реализацию объектов модели безопасности должно обеспечить само приложение. Сама система безопасности в веб приложении состоит из двух частей =over =item Модель системы безопасности Предоставляет такие объкты безопасности, как пользователь, сессия роль, определяет правила проверки прав доступа субъекта к объекту. =item Модуль безопасности Как правило встраивается в транспортный уровеь в виде обработчика C<IMPL::Web::Handler> и реализует непосредственно протокол аутентификации и обмена с пользователем. Также модуль безопасности использует модель для хранения сессий и данных аутентификции. Контекст безопасности создается именно этим модулем. =back =head1 MEMBERS =cut