Mercurial > pub > Impl
comparison Lib/IMPL/Security.pm @ 51:a1498298d3ee
Security in progress
author | wizard@linux-odin.local |
---|---|
date | Mon, 01 Mar 2010 17:25:36 +0300 |
parents | 521c9c1a3ea1 |
children | f47f93534005 |
comparison
equal
deleted
inserted
replaced
50:521c9c1a3ea1 | 51:a1498298d3ee |
---|---|
1 package IMPL::Security; | 1 package IMPL::Security; |
2 require IMPL::Security::Context; | |
3 require IMPL::Security::Rule::RoleCheck; | |
4 | |
5 our @rules = ( | |
6 \&IMPL::Security::Rule::RoleCheck::SatisfyAll | |
7 ); | |
8 | |
9 sub AccessCheck { | |
10 my ($self, $object, $desiredAccess, $context) = @_; | |
11 | |
12 $context = IMPL::Security::Context->contextCurrent; | |
13 | |
14 $_->() or return 0 foreach @{$self->Rules}; | |
15 | |
16 return 1; | |
17 } | |
18 | |
19 sub Rules { | |
20 return \@rules; | |
21 } | |
2 | 22 |
3 1; | 23 1; |
4 | 24 |
5 __END__ | 25 __END__ |
6 | 26 |
7 =pod | 27 =pod |
8 | 28 |
9 =head1 DESCRIPTION | 29 =head1 DESCRIPTION |
10 | 30 |
31 Модуль для инфраструктуры безопасности, реализует основные функции для авторизации | |
32 и аутентификации пользователей. | |
33 | |
34 Модуль аутентификации, реализиция которого зависит от приложения, аутентифицирует | |
35 пользователя, при этом создается контекст безопасности, который содержит | |
36 идентификатор пользователя и список активных ролей. | |
37 | |
38 При проверке прав доступа происходит последовательная проверка правил доступа, | |
39 если все правила выполнены, то доступ разрешается. | |
40 | |
11 | 41 |
12 | 42 |
13 =cut | 43 =cut |