我正在開發基於Apache Jackrabbit的Web應用程序的自定義安全機制。我已經爲我的需要擴展了標準的Jackrabbit安全實現,到目前爲止它工作正常。但是,我遇到了多個主體在節點上被分配權限的問題。多個主體的Jackrabbit權限
例如,用戶U是組G的成員。組G在節點上沒有讀取權限,但用戶U具有讀取權限。我的意思是,組G具有jcr:read
特權設置爲deny
,並且用戶U在節點上將jcr:read
設置爲allow
。
基於此,我假設用戶U能夠讀取節點,即使他是不允許讀取的組的成員。但是,節點不會顯示給用戶U(不是預期的),也不會顯示給任何其他G組成員(預期的)。
有人能幫我解釋一下嗎?我的假設是正確的,還是Jackrabbit計算實際權限的方式不同?或者這只是我的安全實施中的錯誤?
您還可以使用'Privilege [] AccessControlManager.getPrivileges(String absPath)'獲取節點上當前會話的所有特權 – Aroniaina
嘗試下載JCR規範http://download.oracle.com/otndocs/jcp /content_repository-2.0-pfd-oth-JSpec。並確保你閱讀它,如果你在JackRabbit上工作。訪問控制管理位於第16條 – Aroniaina