2016-11-05 4 views
0

Я разрабатываю специальную схему безопасности для веб-приложения на основе Apache Jackrabbit. Я расширил стандартную реализацию безопасности Jackrabbit для своих нужд, и до сих пор он работает правильно. Но у меня проблемы с несколькими принципами, которым назначены разрешения для узла.Разрешения Jackrabbit для нескольких руководителей

Например, пользователь U является членом группы G. Группы G не имеют прав на чтение для узла, но пользователь U имеет разрешения на чтение. Я имею в виду, что группа G имеет jcr:read привилегия, установленную на deny, а пользователь U имеет jcr:read, установленный на allow на узле.

Исходя из этого, я бы предположил, что пользователь U сможет прочитать узел, даже если он является членом группы, которая не разрешается читать. Однако узел не отображается для пользователя U (не ожидаемый) или для любого другого члена группы G (ожидается).

Может ли кто-нибудь помочь мне пролить свет на это? Является ли мое предположение правильным, или же Джебраббит вычисляет фактические разрешения по-разному? Или это просто ошибка в моей реализации безопасности?

+0

Вы также можете использовать 'Privilege [] AccessControlManager.getPrivileges (String absPath)', чтобы получить все привилегии для текущего сеанса на узле – Aroniaina

+0

Попробуйте загрузить спецификацию JCR http://download.oracle.com/otndocs/jcp /content_repository-2.0-pfd-oth-JSpec. и не забудьте прочитать его, если вы работаете на JackRabbit. Управление доступом к управлению находится в разделе 16 – Aroniaina

ответ

1

От this article:

The list of access rights applicable for the subject is constructed from: 

    - the rights that you assign directly to the user account 
    - plus all rights assigned to any of the groups that the user belongs to 

означает, что Jackrabbit взять группу привилегий вместо привилегий пользователя. Вы можете прочитать всю статью, это хорошо для JackRabbit secutiry.

+0

Спасибо за ссылку. Это было очень полезно. но, исходя из этого, я бы сказал, что пользователь имеет приоритет: Приоритет Права доступа в CRX оцениваются следующим образом: - Принципы пользователей всегда имеют приоритет над принципами участников группы независимо от: их порядок в списке управления доступом их положение в иерархии узлов – vdjurovic

Смежные вопросы