あなたはいくつかの選択肢があります: 最初にドキュメントの完全なリストをユーザに表示したいと思うので、あなたはまだそれらのすべてを照会する必要があります。 (私はこのことについて注意していますが、ユーザーがアクセス権を持たない情報を漏らしているので、例えば 'jcoder'というユーザーが 'Super Secret Passwords'という名前の文書を見ると、彼はあなたにこの文書があることを知っています。
)ご使用のケースのためにご利用の場合は、ONLYです、あなたは私はあなたを推測しているだけのシンプルなユーザ名の比較は(今やっている可能性が)
ほとんどのユースケース「のみ作者が自分の文書を編集することができます」である場合、これは単純ではなく、管理者、テクニカルライターなどがリソースにアクセスできるだけでなく、作成者も必要とします。そのため、リソースに一連の権限を割り当てることができます。 publications:docs:<document_id>:<action>
、またはdocs:<document_id>:<action>
とすることができます。 document_id
がいくつかの一意のドキュメント識別子で、action
リソースに何が行われているのですか(一般的なCRUDアプリケーションでは、作成、読み取り、更新、削除)です。 この権限は任意のユーザーに付与することができ、publications:docs:<document_id>:*
を作成者に付与することができます。これにより、誰かが職位を変更した場合や、管理者以外のすべてのユーザーにも読み取り専用のマークを付ける必要がある場合に、権限を取り消すことができます。
コードのスニペットは、次のようになります。
if(SecurityUtils.getSubject().isPermitted("publications:docs:":"+ documentId + ":read") {
// do something
}
それとも、彼らにall at onceそれらを確認することができます。
アプリケーションは、ユーザーにアクセス許可の追加を追跡する必要があります。 http://shiro.apache.org/permissions.html
、同様の質問:Java – efficient, database-aware instance-level authorization?
ことを見てみましょう