9.4.1 Enterprise Beanのメソッドパーミッション
メソッドパーミッションの設定方法について説明します。メソッドパーミッションの定義では,セキュリティロールによるアクセス制御を定義します。すべてのユーザにアクセス権限を与えることや,どのユーザにもアクセス権限を与えないこともできます。
メソッドパーミッションを設定できるメソッドは次のとおりです。
-
Session Bean
-
ホームインタフェースのcreateメソッド
-
コンポーネントインタフェースのビジネスメソッド,removeメソッド
-
-
Entity Bean
-
ホームインタフェースのcreateメソッド,finderメソッド,homeメソッド
-
コンポーネントインタフェースのビジネスメソッド,removeメソッド
-
なお,次に示すメソッドにパーミッションを設定しても使用されません。これらのメソッドのアクセス権限チェックには,コンポーネントインタフェースのremoveメソッドに設定したメソッドパーミッションが使用されます。
-
javax.ejb.EJBHomeのremove(javax.ejb.Handle handle)メソッド
-
javax.ejb.EJBHomeのremove(Object primaryKey)メソッド
-
javax.ejb.EJBLocalHomeのremove(Object primaryKey)メソッド
- 注意事項
-
CTMを使用するアプリケーションで<Enable Scheduling>プロパティが指定されたStateless Session Beanでは,ホームインタフェースのcreateメソッドにセキュリティロールによるアクセス権限を設定しないでください。設定した場合,デプロイに失敗します。
(1) 編集する属性ファイル
次のEnterprise Beanの種類に対応する属性ファイルを編集します。
-
Session Bean属性ファイル
-
Entity Bean属性ファイル
(2) 編集する属性ファイルの取得と属性の設定
-
属性ファイルの取得
次に示すコマンドを実行してEnterprise Beanの属性ファイルを取得します。
- 実行形式
cjgetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] -name <J2EEアプリケーション名> -type ejb -resname <EJB-JAR表示名>/<Enterprise Bean表示名> -c <Enterprise Beanの属性ファイルパス>
- 実行例
cjgetappprop MyServer -name adder -type ejb -resname adder/adder-eb -c C:\home\adder_ejb.xml
-
属性の設定
次に示すコマンドを実行して,Enterprise Beanの属性ファイルの値を反映します。
- 実行形式
cjsetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] -name <J2EEアプリケーション名> -type ejb -resname <EJB-JAR表示名>/<Enterprise Bean表示名> -c <Enterprise Beanの属性ファイルパス>
- 実行例
cjsetappprop MyServer -name adder -type ejb -resname adder/adder-eb -c C:\home\adder_ejb.xml
(3) 編集する属性設定項目
セキュリティの定義(メソッドパーミッション)の設定項目(<method-permission>)を次に示します。
項目 |
必須 |
対応するタグ名 |
---|---|---|
説明 |
△ |
<description> |
ロール名 |
△※ |
<role-name> |
メソッド認証有無 |
△※ |
<unchecked> |
メソッドの説明 |
△ |
<method> - <description> |
インタフェース種別 |
△ |
<method> - <intf> |
メソッド名 |
△ |
<method> - <name> |
プロパティの設定項目については,次の個所を参照してください。
-
マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「3.4.1 Session Bean属性ファイルの指定内容」
-
マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「3.5.1 Entity Bean属性ファイルの指定内容」