Mercurial > pub > Impl
diff Lib/IMPL/Web/QueryHandler/SecureCookie.pm @ 75:915df8fcd16f
docs
small fixes
author | wizard |
---|---|
date | Tue, 30 Mar 2010 20:31:36 +0400 |
parents | 84aa8c395fce |
children | 3d1f584aea60 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/QueryHandler/SecureCookie.pm Mon Mar 29 17:40:06 2010 +0400 +++ b/Lib/IMPL/Web/QueryHandler/SecureCookie.pm Tue Mar 30 20:31:36 2010 +0400 @@ -13,25 +13,33 @@ sub CTOR { my ($this) = @_; - + $this->salt('DeadBeef') unless $this->salt; } sub Process { my ($this,$action,$nextHandler) = @_; + return undef unless $nextHandler; + my $method = $action->query->cookie('method') || 'simple'; if ($method eq 'simple') { my $sid = $action->query->cookie('sid'); - my $cookie = $action->query->cookie('cookie'); + my $cookie = $action->query->cookie('sdata'); + my $sign = $action->query->cookie('sign'); - if ($action->query->cookie('sign') eq md5_hex( - $this->salt, - $sid, - $cookie, - $this->salt - ) ) { + if ( + $sid and + $cookie and + $sign and + $sign eq md5_hex( + $this->salt, + $sid, + $cookie, + $this->salt + ) + ) { my $context = $action->application->security->Session( id => $sid @@ -50,5 +58,35 @@ } } +1; -1; \ No newline at end of file +__END__ + +=pod + +=head1 NAME + +C<IMPL::Web::QueryHandler::SecureCookie> + +=head1 DESCRIPTION + +C<use base qw(IMPL::Web::QueryHandler)> + +Возобновляет сессию пользователя на основе информации переданной через Cookie. + +Использует механизм подписи информации для проверки верности входных данных перед +началом каких-либо действий. + +Данный обработчик возвращает результат выполнения следдующего обработчика. + +=head1 MEMBERS + +=over + +=item C<[get,set] salt> + +Скаляр, использующийся для подписи данных. + +=back + +=cut \ No newline at end of file