57
|
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__ |