Apache Jackrabbitに基づくWebアプリケーションのカスタムセキュリティスキームを開発しています。私は標準のJackrabbitセキュリティ実装を自分のニーズに合わせて拡張しましたが、これまでのところ正しく動作しています。しかし、私は、複数のプリンシパルにノードのパーミッションが割り当てられているときに問題が発生しています。複数のプリンシパルのJackrabbit権限
たとえば、ユーザUはグループGのメンバーです。グループGにはノードに対する読み取り権限はありませんが、ユーザUには読み取り権限があります。つまり、グループGはjcr:read
特権がdeny
に設定されており、ユーザーUはノード上でallow
に設定されており、jcr:read
に設定されています。
これに基づいて、ユーザーUは、読み込みが許可されていないグループのメンバであっても、ノードを読み取ることができると思います。ただし、ユーザーU(想定されていない)、またはグループGの他のメンバー(予想される)のノードは表示されません。
誰かが私にこれについていくつかの光を当てることができますか?私の仮定は正しいのですか、Jackrabbitは実際の権限を別々に計算していますか?または、これは私のセキュリティの実装では単なるエラーですか? this articleから
ノード上の現在のセッションのすべての権限を取得するには、Privilege [] AccessControlManager.getPrivileges(文字列absPath)を使用することもできます。 – Aroniaina
JCR仕様のダウンロードを試行してください。http://download.oracle.com/otndocs/jcp /content_repository-2.0-pfd-oth-JSpec。あなたがJackRabbitで仕事をしているなら、それを必ず読んでください。アクセス制御管理はセクション16にあります – Aroniaina