Я разрабатываю специальную схему безопасности для веб-приложения на основе Apache Jackrabbit. Я расширил стандартную реализацию безопасности Jackrabbit для своих нужд, и до сих пор он работает правильно. Но у меня проблемы с несколькими принципами, которым назначены разрешения для узла.Разрешения Jackrabbit для нескольких руководителей
Например, пользователь U является членом группы G. Группы G не имеют прав на чтение для узла, но пользователь U имеет разрешения на чтение. Я имею в виду, что группа G имеет jcr:read
привилегия, установленную на deny
, а пользователь U имеет jcr:read
, установленный на allow
на узле.
Исходя из этого, я бы предположил, что пользователь U сможет прочитать узел, даже если он является членом группы, которая не разрешается читать. Однако узел не отображается для пользователя U (не ожидаемый) или для любого другого члена группы G (ожидается).
Может ли кто-нибудь помочь мне пролить свет на это? Является ли мое предположение правильным, или же Джебраббит вычисляет фактические разрешения по-разному? Или это просто ошибка в моей реализации безопасности?
Вы также можете использовать 'Privilege [] AccessControlManager.getPrivileges (String absPath)', чтобы получить все привилегии для текущего сеанса на узле – Aroniaina
Попробуйте загрузить спецификацию JCR http://download.oracle.com/otndocs/jcp /content_repository-2.0-pfd-oth-JSpec. и не забудьте прочитать его, если вы работаете на JackRabbit. Управление доступом к управлению находится в разделе 16 – Aroniaina