ユーザがuser:edit:1
の権限を持っていて、注釈を使用している場合@RequiresPermissions("user:edit")
shiroが例外をスローしているのはなぜですか?その許可は、彼らがuser:edit:1
を持っているという事実によって示唆されるべきではありませんか?もし私が@RequriesPermissions("user:edit:1")
を入れたらそれはうまくいきますが、操作の文脈の中で、私は何が1なのかまだ分かりませんので、後ほどメソッドでチェックされますが、メソッドに入るのを避けたいと思います。許可はuser:edit
です。Apache shiro暗黙のアクセス許可
0
A
答えて
1
"user:edit"
は、"user:edit:1"
を意味しますが、それ以外の方法ではありません。 @RequiresPermissions("user:edit")
を引き続き使用し、"1"をあなたの方法でチェックすることができます。ワイルドカード@RequiresPermissions("user:edit:*")
も使用できますが、これはまったく同じですが、わかりました。私は考えていない
3
は、ascandrolisの答えは史郎ドキュメントの状態から、正しいです:
しかしはるかに少ない理想的なランタイムチェックのため、次のとおりです。
if (SecurityUtils.getSubject().isPermitted("printer:print")) {
//print the document
}
なぜですか? 2番目の例では、「次のコードブロックを実行するには、どのプリンタにも印刷できなければなりません」と記載されているためです。しかし、 "printer:print"は "printer:print:*"と同等です!
そこで@RequiresPermissions("user:edit:*")
は、プリンシパルが、任意のユーザが編集できるようにする必要がある、すなわち@RequiresPermissions("user:edit")
、同じことを意味します。
関連する問題
- 1. Apache shiro + HTTPメソッドレベルの許可
- 2. apache shiroを使ったユーザーの役割とユーザーのアクセス許可
- 3. Uber Ride on暗黙の許可認証
- 4. IdentityServer4暗黙の許可acr値
- 5. 暗黙的なアクセス許可/ロールでセキュリティモデルを定義する
- 6. 既存のデータアクセスオブジェクトクラスにおけるApache Shiroの役割とアクセス許可の影響
- 7. Apache Zeppelin(Shiro Security)はメモのアクセス許可を保存できません
- 8. Apacheのアクセス許可のエラー
- 9. Apacheファイルのアクセス許可
- 10. Apacheで暗黙的にリダイレクト
- 11. Apache Shiroのインスタンスレベルのアクセス制御
- 12. ファイルのアクセス許可セキュリティのapache
- 13. 暗黙の許可タイプ:無効grant_typeパラメータ値WSO2
- 14. 定義ファイルのみを暗黙的に許可する
- 15. Identity Server 3暗黙的な許可(mvcアプリケーション)
- 16. 'アクセス制御許可元'ヘッダー - apache
- 17. Apache Shiro:最後に一致したパスを許可フィルタで検証中
- 18. apache Shiroログイン
- 19. Apache Shiro 1.2.4 - 1.3.2
- 20. JdbcRealm in apache shiro
- 21. Apache ShiroのCSRFトークン
- 22. Apache Shiro - 件名のパーミッションとターゲットの許容量
- 23. Apache shiro + kerberos認証
- 24. Spring 4 MVC + Apache Shiro
- 25. 暗黙の許可フローの実装方法とカスタム要求の実装方法
- 26. IdentityServer4に関連する暗黙のフロー/許可タイプの概要または図
- 27. 暗黙の許可フローはどのように機能しますか?
- 28. 単一の値に対して暗黙の変換を許可する
- 29. MSALを使用して暗黙の許可を使用してAzure ACにアクセスする
- 30. スカラ:暗黙的に暗黙のクラスに
質問、回答、およびドキュメントをもう一度読み、慎重に読んでください:ユーザーが「持っているもの」、「必要なもの」、および開発者が事前に知っている情報 – ascandroli
申し訳ありませんが私の答えは、私はそれが意味するほど明確ではなかった場合。私が言いたいのは、2つのパーミッション「user:edit」と「user:edit:*」が100%同等であることです。したがって、後者を使用するという提案はセキュリティ上の例外を受け取るopの問題を解決しません。ちょうどあなた自身のためにそれを試してください(私がしたように)。 – martin
代替案は[this](http://blog.42.nl/articles/spring-security-accessing-spring-beans-from-your-security-annotations)のようなものかもしれません:カスタムでのshiro-checkのやり方カスタムWebSecurityExpressionRoot(http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/)を使用して、注釈を使用して、 web/access/expression/WebSecurityExpressionRoot.html)を使用すると、http-requestにアクセスできるため、クライアントから提供されたIDにアクセスできます。 – martin