comparison Lib/IMPL/Web/Security.pm @ 393:69a1f1508696

minor security refactoring
author cin
date Fri, 14 Feb 2014 16:41:12 +0400
parents 2287c72f303a
children
comparison
equal deleted inserted replaced
392:54b1dc9e808a 393:69a1f1508696
17 ERR_NO_AUTHORITY => -3, 17 ERR_NO_AUTHORITY => -3,
18 ERR_NO_SEC_CONTEXT => -4, 18 ERR_NO_SEC_CONTEXT => -4,
19 ERR_AUTH_FAIL => -5 19 ERR_AUTH_FAIL => -5
20 }; 20 };
21 21
22 sub interactiveAuthPackage {
23 die NotImplementedException->new();
24 }
25
26 sub users {
27 die NotImplementedException->new();
28 }
29
30 sub roles {
31 die die NotImplementedException->new();
32 }
33
34 sub sessions {
35 die NotImplementedException->new();
36 }
37
22 sub AuthUser { 38 sub AuthUser {
23 my ($this,$name,$challenge,$package) = @_; 39 my ($this,$name,$challenge,$roles,$package) = @_;
24 40
25 $package ||= $this->interactiveAuthPackage; 41 $package ||= $this->interactiveAuthPackage;
42 $roles ||= [];
26 43
27 my $user = $this->users->GetById($name) 44 my $user = $this->users->GetById($name)
28 or return { 45 or return {
29 status => AUTH_FAIL, 46 status => AUTH_FAIL,
30 code => ERR_NO_SUCH_USER 47 code => ERR_NO_SUCH_USER
51 code => ERR_NO_AUTHORITY 68 code => ERR_NO_AUTHORITY
52 } unless SecurityContext->current->authority; 69 } unless SecurityContext->current->authority;
53 70
54 my $status = SecurityContext->current->authority->InitSession( 71 my $status = SecurityContext->current->authority->InitSession(
55 $user, 72 $user,
56 [$user->roles], 73 $roles,
57 $auth, 74 $auth,
58 $challenge 75 $challenge
59 ); 76 );
60 77
61 return { 78 return {