Java Webアプリケーションを構築しています。我々は、EJBコンテナとJPAをWildfly 9.2とともに使用しています。特定のエンティティにのみEJBロールを付与する方法
ユーザーが特定の役割を持つ権限システムを統合したいが、この役割は特定のエンティティとの組み合わせでのみ許可される。このアクセスリソース部門に名前を付けます。
だから我々は、このようなテーブルに格納されたユーザーの権限のリストを持っているでしょう:私たちはグローバルな役割を持っているほか
| User ID | Department | Role |
| ------- | ---------- | ------- |
| 1 | A | MANAGER |
| 1 | B | ADMIN |
| 2 | B | MANAGER |
を。ユーザーは、上記の表に質問の項目がない場合に適用される一連のグローバルロールを持っています。
| User ID | Role |
| ------- | ------- |
| 1 | VIEWER |
| 3 | MANAGER |
私たちは、ユーザーがある部門に所属しているかどうかを簡単に確認できますか?
アノテーション@RolesAllowedを使用するだけで、特定の役割を確認できますが、部門に限定されません。
フィルターについてはどうですか? URLを指定すると、そのURLでどの部門にアクセスするのかはわかりますか?ユーザーがその部門にいない場合は、要求を拒否します。解決策が何であれ、再編成があり、部門が変わるとどうなりますか? –
または、おそらくEJB層のインターセプタ。 –
ありがとうございます。私たちは確かにそれを調べました。 現在、Apache Shiroも探しています。これは私たちの要求を満たすかもしれません。 –