2017-04-12 13 views
0

Apache Shiroをセキュリティレイヤーとして使用するSpring MVCプロジェクトをダウンロードしました。コントローラでは、それは例えば、許可を定義するために@RequiresPermissionsを使用しています。Spring MVCのApache Shiroに関するいくつかの質問

@RequiresPermissions("sys:user:view") 
@RequestMapping(value = {"index"}) 
public String index(User user, Model model) { 
    return "modules/sys/userIndex"; 
} 

@RequiresPermissions("sys:user:view") 
@RequestMapping(value = {"list", ""}) 
public String list(User user, HttpServletRequest request, HttpServletResponse response, Model model) { 
    return "modules/sys/userList"; 
} 

私はこれについての質問のカップルしている:これは、権限のどのような

  1. のですか?私はShiro documentsをチェックし、3つの部分は "domain:action:instance"でなければなりませんが、上記のコードでは、最初の2つの部分はパスであり、最後の部分はアクションです。だから私はちょうど混乱している。
  2. @RequiresPermissionsアノテーションがパーミッションを定義するために使用しているかどうかはわかりません。私は新しいパーミッションを定義するのに使ってみましたが失敗しました。そうでない場合は、新しい権限をどのように定義するのですか?

答えて

0

実際の許可文字列はフリーフォームです。 "domain:action:instance"は一例です。あなたはusers:write:1234のようなものを使うこともできますし、ちょっとだけ一般的なusers:writeを使うこともできます。しかし、<domain>:<instance>:<action>のようなものを使用するのを止めるものは何もありません。同じ2つの例を使用すると、users:1234:writeusers:*:write(それぞれ)になります。 #2レルム(またはRolePermissionResolver)について

は、ユーザーと権限(または役割と権限)返信用

+0

おかげとの間のマッピングを定義する責任があります。あなたのヒントでは、私はソースコードをチェックし、根本的な文字列の比較を見つけました。フォーマットは単なる例です。 – popo

関連する問題