diff Lib/IMPL/Web/Security.pm @ 328:63709a4e6da0

Security framework refactoring
author cin
date Mon, 03 Jun 2013 03:28:01 +0400
parents 23daf2fae33a
children 2287c72f303a
line wrap: on
line diff
--- a/Lib/IMPL/Web/Security.pm	Thu May 30 20:31:37 2013 +0400
+++ b/Lib/IMPL/Web/Security.pm	Mon Jun 03 03:28:01 2013 +0400
@@ -6,6 +6,7 @@
     require => {
         Exception => 'IMPL::Exception',
         NotImplementedException => '-IMPL::NotImplementedException',
+        ArgException => '-IMPL::InvalidArgumentException',
         SecurityContext => 'IMPL::Security::AbstractContext'
     },
 };
@@ -21,7 +22,7 @@
 sub AuthUser {
     my ($this,$name,$package,$challenge) = @_;
     
-    my $user = $this->FindUserByName($name)
+    my $user = $this->users->GetById($name)
         or return {
             status => AUTH_FAIL,
             code => ERR_NO_SUCH_USER
@@ -69,28 +70,17 @@
 	if($session && $session->authority) {
 		$session->authority->CloseSession($session);
 		
-		$this->CloseSession($session);
+		$this->sessions->Delete($session);
 	}
 }
 
-sub FindUserByName {
-    die NotImplementedException->new();
-}
-
-sub CreateSession {
-    die NotImplementedException->new();
-}
-
-sub GetSession {
-    die NotImplementedException->new();
-}
-
-sub SaveSession {
-    die NotImplementedException->new();
-}
-
-sub CloseSession {
-	die NotImplementedException->new();
+sub CreateSecData {
+    my ($this,$package,$params) = @_;
+    
+    die ArgException->new(params => 'A hash reference is required')
+        unless ref($params) eq 'HASH';
+    
+    return $package->CreateSecData(%$params);
 }
 
 1;
@@ -121,12 +111,14 @@
 
 =item Модуль безопасности
 
+Контекст безопасности создается именно этим модулем.
+
 Как правило встраивается в транспортный уровеь в виде обработчика
 C<IMPL::Web::Handler> и реализует непосредственно протокол аутентификации и
 обмена с пользователем.
 
 Также модуль безопасности использует модель для хранения сессий и данных
-аутентификции. Контекст безопасности создается именно этим модулем.
+аутентификции. 
 
 =back