changeset 68:739f1288ca84

Auth in progress
author wizard
date Tue, 23 Mar 2010 16:55:25 +0300 (2010-03-23)
parents 9f5795a10939
children 8c7b88bdb663
files Lib/IMPL/Security/Auth.pm Lib/IMPL/Security/Auth/Simple.pm Lib/IMPL/Security/Context.pm Lib/IMPL/Web/QueryHandler/AuthCookie.pm
diffstat 4 files changed, 45 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/Lib/IMPL/Security/Auth.pm	Fri Mar 19 20:06:12 2010 +0300
+++ b/Lib/IMPL/Security/Auth.pm	Tue Mar 23 16:55:25 2010 +0300
@@ -28,21 +28,11 @@
 
 =head1 DESCRIPTION
 
-�������� ������ ��� ����������� �������������.
-
-������� ����������� ������� �� ��������� �����
+�������� ������ ��� �����������.
 
-1. ������ ���������� �� ������ ������ ��� ����������� � ���������� �����������.
-2. ������ �������� ������, ������� ������ �������������� ��� �������,
-���������� ��������������
-3. ������ �������������� ���������� ���������, �� ������ ��������
-���� ����������� �������� ������������, ���� ������������ ������� ��������������
+� �������� ����������� ������ � ������ ������������� ������� ������������ C<$challenge>.
 
-���������� �������� ������������ �������� ������ ��� ������� � ������ ��������������,
-� ������ ���������� ���������� �������� ������, �������� �������������, ��������� �����
-� �.�. 
-
-����� �������������� ������ ����� ��������� ���������
+��� ����
 
 =over
 
--- a/Lib/IMPL/Security/Auth/Simple.pm	Fri Mar 19 20:06:12 2010 +0300
+++ b/Lib/IMPL/Security/Auth/Simple.pm	Tue Mar 23 16:55:25 2010 +0300
@@ -2,7 +2,6 @@
 
 use base qw(IMPL::Security::Auth);
 use Digest::MD5;
-import IMPL::Security::Auth qw(:Const GenSSID);
 
 use IMPL::Class::Property;
 
@@ -21,7 +20,7 @@
 	my ($this,$challenge) = @_;
 
 	if (Digest::MD5::md5_hex($challenge) eq $this->_passwordImage) {
-		return (SUCCESS,$this->_sessionCookie(GenSSID));
+		return (SUCCESS,$this->_sessionCookie($this->GenSSID));
 	} elsee {
 		return (FAIL,undef);
 	}
--- a/Lib/IMPL/Security/Context.pm	Fri Mar 19 20:06:12 2010 +0300
+++ b/Lib/IMPL/Security/Context.pm	Tue Mar 23 16:55:25 2010 +0300
@@ -12,9 +12,9 @@
 my $nobody;
 
 BEGIN {
-    public property Principal => prop_get;
-    public property AssignedRoles => prop_all | prop_list;
-    public property AuthSession => prop_all;
+    public property principal => prop_get;
+    public property rolesAssigned => prop_all | prop_list;
+    public property auth => prop_all;
 }
 
 sub Impersonate {
@@ -36,7 +36,7 @@
 
 sub contextNobody {
     my ($self) = @_;
-    $nobody = $self->new(Principal => IMPL::Security::Principal->nobody, AssignedRoles => undef) unless $nobody;
+    $nobody = $self->new(principal => IMPL::Security::Principal->nobody, rolesAssigned => undef) unless $nobody;
     $nobody;
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/IMPL/Web/QueryHandler/AuthCookie.pm	Tue Mar 23 16:55:25 2010 +0300
@@ -0,0 +1,37 @@
+package IMPL::Web::QueryHandler::AuthCookie;
+
+use base qw(IMPL::Web::QueryHandler);
+use Digest::MD5 qw(md5_hex);
+
+use IMPL::Class::Property;
+
+BEGIN {
+	public property salt => prop_all;
+}
+
+sub Process {
+	my ($this,$action,$nextHandler) = @_;
+	
+	my $method = $action->query->cookie('method') || 'simple';
+	
+	if ($method eq 'simple') {
+		
+		if ($action->query->cookie('sign') eq md5_hex(
+			$this->salt,
+			$action->query->cookie('sid'),
+			$this->salt
+		) ) {
+			
+			my $context = $action->application->security->Session($action->query->cookie('sid'));
+			
+			$context->auth->
+			
+		}
+				
+	} else {
+		die new IMPL::Exception("Unknown auth method",$method);
+	}
+}
+
+
+1;
\ No newline at end of file