アプリ
さまざまなユーザーが使用するWebアプリを実装する必要があります。各ユーザーは、さまざまなテーブルに対して異なる特権を持っています。
Student
Student
特定のアクセスを制限するために、UIレベルで何かを用意します。たとえば、エントリを変更する権限を持たないユーザーの[編集]ボタンを非表示にします。ただし、データのセキュリティを確保するためだけに、より低いレベル(おそらくデータベースレベルで?)に何かを用意する必要があると思います。
問題
アプリにHibernate、JBoss、DB2、Strutsを使用しています。ユーザー/パスワード/ロールを使用してデータベースに対してユーザーを認証する、ある種のJBoss LoginModuleを使用する必要があると思います(ただし、間違っている可能性があります(?))。私はいくつかの調査を行い、次のオプションを考え出しましたが、どれも私の場合に当てはまらないようです。これは、マルチユーザーWebアプリで非常に一般的なデータアクセスの問題だと思います。誰かが私を正しい方向に向けてくれませんか?前もって感謝します!
hibernate.cfg.xml
JACCイベントリスナーで「grant」タグを使用します。これにより、すべての休止状態エンティティに「挿入」「更新」「読み取り」権限を設定できます。ただし、より細かい制御が必要な場合はどうなりますか?オブジェクト全体ではなく、特定のフィールドにアクセス許可を設定する必要があります。http://www.hibernate.org/hib_docs/v3/reference/en-US/html/objectstate-decl-security.html各ejbのgetter/setterメソッドの権限を制限します。これを正しく理解していれば、すべてのユーザープロファイルに対してすべてのBeanを手動で構成する必要がありますが、これは私には非現実的です。 EJBメソッドのアクセス許可
DAOをコーディングして、ユーザー権限を確認します。ログインしたユーザーがアクションを実行できるかどうかを判断するために、特定のDAOメソッドが呼び出されるたびに巨大なアクセス許可テーブルをチェックする独自のユーティリティ関数をロールします。
Hibernateで「インターセプター」と「イベント」を使用します。各クラスに特定の「onLoad」、「onSaveorUpdate」などのイベントとインターセプターを定義します。この場合、個々のフィールドに権限レベルを指定できますか?http://www.hibernate.org/hib_docs/v3/reference/en-US/html/objectstate-events.html
間違った木に吠えているのかもしれません。上記のすべては労働集約的であり、あまりインテリジェントではないようです。上記のオプションはいずれも、実行時にユーザー権限をプログラムで変更する方法を提供しません。これは、管理者レベルのユーザーがこのアプリで別のユーザーにより多くの制御を与えたい場合に役立ちます。
ここでデータアクセス制御を行うための良い方法は何ですか?