Red Hat Training

A Red Hat training course is available for Red Hat JBoss Web Server

13.3. Hibernate の宣言的なセキュリティ

一般的に Hibernate アプリケーションの宣言的なセキュリティは、セッションファサード層で管理します。Hiberenate3 は JACC で許可し、さらに JAAS で認証したアクションも可能です。これはイベントアーキテクチャの最上位に組み込まれているオプション機能です。
まず最初に、適切なイベントリスナを設定して JAAS 認証を使えるようにしなければなりません。
<listener type="pre-delete" class="org.hibernate.secure.JACCPreDeleteEventListener"/>
<listener type="pre-update" class="org.hibernate.secure.JACCPreUpdateEventListener"/>
<listener type="pre-insert" class="org.hibernate.secure.JACCPreInsertEventListener"/>
<listener type="pre-load" class="org.hibernate.secure.JACCPreLoadEventListener"/>
特定のイベント型に対してちょうど一つのリスナがあるとき、<listener type="..." class="..."/><event type="..."><listener class="..."/></event> の簡略形に過ぎないことに注意してください。
次に、同じく hibernate.cfg.xml でロールにパーミッションをバインドしてください:
<grant role="admin" entity-name="User" actions="insert,update,read"/>
<grant role="su" entity-name="User" actions="*"/>
このロール名は使用する JACC プロバイダに理解されるロールです。