comparison Lib/IMPL/Security/Auth/Simple.pm @ 194:4d0e1962161c

Replaced tabs with spaces IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
author cin
date Tue, 10 Apr 2012 20:08:29 +0400
parents d1676be8afcc
children 6d8092d8ce1b
comparison
equal deleted inserted replaced
193:8e8401c0aea4 194:4d0e1962161c
5 use Digest::MD5; 5 use Digest::MD5;
6 6
7 use IMPL::Class::Property; 7 use IMPL::Class::Property;
8 use IMPL::Security::Auth qw(:Const); 8 use IMPL::Security::Auth qw(:Const);
9 9
10 BEGIN { 10 BEGIN {
11 private property _passwordImage => prop_all; 11 private property _passwordImage => prop_all;
12 private property _sessionCookie => prop_all; 12 private property _sessionCookie => prop_all;
13 } 13 }
14 14
15 sub CTOR { 15 sub CTOR {
16 my ($this,$secData) = @_; 16 my ($this,$secData) = @_;
17 17
18 my ($passImg,$cookie) = split /\|/,$secData; 18 my ($passImg,$cookie) = split /\|/,$secData;
19 19
20 $this->_passwordImage($passImg); 20 $this->_passwordImage($passImg);
21 $this->_sessionCookie($cookie); 21 $this->_sessionCookie($cookie);
22 } 22 }
23 23
24 sub secData { 24 sub secData {
25 my ($this) = @_; 25 my ($this) = @_;
26 26
27 if ($this->_sessionCookie) { 27 if ($this->_sessionCookie) {
28 return join ('|',$this->_passwordImage, $this->_sessionCookie ); 28 return join ('|',$this->_passwordImage, $this->_sessionCookie );
29 } else { 29 } else {
30 return $this->_passwordImage; 30 return $this->_passwordImage;
31 } 31 }
32 } 32 }
33 33
34 sub isTrusted { 34 sub isTrusted {
35 my ($this) = @_; 35 my ($this) = @_;
36 36
37 $this->_sessionCookie ? 1 : 0; 37 $this->_sessionCookie ? 1 : 0;
38 } 38 }
39 39
40 sub DoAuth { 40 sub DoAuth {
41 my ($this,$challenge) = @_; 41 my ($this,$challenge) = @_;
42 42
43 if (Digest::MD5::md5_hex($challenge) eq $this->_passwordImage) { 43 if (Digest::MD5::md5_hex($challenge) eq $this->_passwordImage) {
44 return (AUTH_SUCCESS,$this->_sessionCookie($this->GenSSID)); 44 return (AUTH_SUCCESS,$this->_sessionCookie($this->GenSSID));
45 } elsee { 45 } elsee {
46 return (AUTH_FAIL,$this->_sessionCookie(undef)); 46 return (AUTH_FAIL,$this->_sessionCookie(undef));
47 } 47 }
48 } 48 }
49 49
50 sub ValidateSession { 50 sub ValidateSession {
51 my ($this,$cookie) = @_; 51 my ($this,$cookie) = @_;
52 52
53 die new IMPL::InvalidOperationException("The context is untrusted") unless $this->_sessionCookie; 53 die new IMPL::InvalidOperationException("The context is untrusted") unless $this->_sessionCookie;
54 54
55 if ($cookie eq $this->_sessionCookie) { 55 if ($cookie eq $this->_sessionCookie) {
56 return (AUTH_SUCCESS,undef); 56 return (AUTH_SUCCESS,undef);
57 } else { 57 } else {
58 return (AUTH_FAIL,undef); 58 return (AUTH_FAIL,undef);
59 } 59 }
60 } 60 }
61 61
62 sub CreateSecData { 62 sub CreateSecData {
63 my ($self,%args) = @_; 63 my ($self,%args) = @_;
64 64
65 die new IMPL::InvalidArgumentException("The parameter is required",'password') unless $args{password}; 65 die new IMPL::InvalidArgumentException("The parameter is required",'password') unless $args{password};
66 66
67 return Digest::MD5::md5_hex($args{password}); 67 return Digest::MD5::md5_hex($args{password});
68 } 68 }
69 69
70 sub SecDataArgs { 70 sub SecDataArgs {
71 password => 'SCALAR' 71 password => 'SCALAR'
72 } 72 }
73 73
74 1; 74 1;
75 75
76 __END__ 76 __END__