comparison Lib/IMPL/Web/Application/Session.pm @ 57:bf59ee1cd506

Web application main class functionality
author wizard
date Fri, 05 Mar 2010 13:59:29 +0300
parents
children
comparison
equal deleted inserted replaced
56:117b6956d5a5 57:bf59ee1cd506
1 package IMPL::Web::Application::Session;
2 use strict;
3
4 use base qw(IMPL::Object);
5
6 use IMPL::Security::Auth qw(GenSSID);
7
8 use IMPL::Class::Property;
9
10 BEGIN {
11 public property id => prop_get | owner_set;
12 public property principal => prop_get | owner_set;
13 public property authSession => prop_get | owner_set;
14 public property roles => prop_get | owner_set | prop_list;
15 }
16
17 sub CTOR {
18 my ($this,%args) = @_;
19
20 $this->principal($args{principal}) or die new IMPL::InvalidArgumentException("A principal is required");
21 $this->authSession($args{auth}) or die new IMPL::InvalidArgumentException("An auth session is required");
22 $this->roles($args{roles}) if $args{roles};
23
24 $this->id(GenSSID());
25 }
26
27 sub DoAuth {
28 my ($this,$secData) = @_;
29
30 return $this->authSession->DoAuth($secData);
31 }
32
33 sub ValidateSession {
34 my ($this,$secData) = @_;
35
36 return $this->authSession->ValidateSession($secData);
37 }
38
39 1;
40
41 __END__