オラクル社が 2016/07/19 よりリリースを開始した以下のJava SE Development Kit(以降、JDKと表記)において、javax.rmi.CORBA.ValueHandlerへのアクセス制御強化を目的とした仕様変更が行われました。
- Java SE Development Kit 8 Update 101/102(以降、JDK 8u101/102と表記)
- Java SE Advanced 契約ユーザ向け Java SE Development Kit 7 Update 111(以降、JDK 7u111と表記)
- Java SE Advanced 契約ユーザ向け Java SE Development Kit 6 Update 121(以降、JDK 6u121と表記)
この影響により、WebOTX製品で以下の事象が発生することを確認しました。
(事象1) 統合運用管理ツールまたは運用管理コマンドから、リモート・インタフェースを含むEJBの配備処理が失敗する。
(事象2) ユーザアプリケーションからのJNDIルックアップに失敗する。
本事象が発生すると次のメッセージが出力され、配備処理が異常終了します。
- 出力メッセージ
(事象1の場合)
2016-07-25 17:28:28,348 ERROR CORE - [RMI TCP Connection(25)-xxx.xxx.xxx.xxx]
java.lang.ExceptionInInitializerError
at com.nec.webotx.ejb.codegen.rif.Output.output(Output.java:56)
at com.nec.webotx.ejb.codegen.rif.RifFileGenerator.generate(RifFileGenerator.java:77)
at com.nec.webotx.ejb.codegen.StaticRmiStubGenerator.ejbc(StaticRmiStubGenerator.java:727)
at com.nec.webotx.as.ejb.startup.EjbDeployer.generateArtifacts(EjbDeployer.java:535)
:
Caused by: java.security.AccessControlException: access denied ("java.io.SerializablePermission" "enableCustomValueHanlder")
(事象2の場合)
2016-08-16 17:05:53,982 002: INFO JACC Policy Provider:Failed Permission Check: context ("xxx")
(※1) |
2016年10月のリリース版で「enableCustomValueHanlder」のスペルミスが修正されました。
当該のリリース版を利用している場合は「enableCustomValueHandler」と読み替えてください
|
当該のJDKを利用する場合、[対処方法]に従った対応をしてください。
なお、ヒューレット・パッカード社からリリースされている JDK についても、本事象が発生いたしますので、同様に対処を行ってください。
【本事象が発生するヒューレット・パッカード社 JDK のバージョン情報】(2016/12/12 現在)
- Version 8.0.07 - September 2016 (includes Oracle update 8u102)
- Version 7.0.18 - September 2016 (includes Oracle update 7u111)
- Version 6.0.31 - September 2016 (includes Oracle update 6u121)
javax.rmi.CORBA.ValueHandlerへのアクセス制御強化を目的としたJDKの仕様変更により、サード・パーティのコードからの javax.rmi.CORBA.Util.createValueHandler() メソッドの呼び出し時にjava.io.SerializablePermission("enableCustomValueHanlder") 権限が必要となりました。
影響のある製品では、リモート・インタフェースを含むEJBの配備処理時に、javax.rmi.CORBA.Util.createValueHandler() メソッドの呼び出しを行っています。そのため、当該のJDKを利用した場合に、権限不足により配備処理が失敗します。
V9.4をご利用の場合は本問題を修正したWebOTXのパッチを以下に公開していますので適用してください。
・Windows(x64), HP-UX 向けのみ
V9.40.00.05
・全プラットフォーム共通
V9.40.00.03
(注意) パッチモジュールは製品保守契約を結んでいただいたお客様に限定して提供させていただいています。まだ契約がお済みでないお客様は、保守契約締結の後、ダウンロードをお願いいたします。
上記以外のバージョンをご利用の場合はWebOTXのサービスが停止していることを確認の上、ポリシーファイル(server.policy)を次の手順で編集してください。
手順1.以下のポリシーファイル(server.policy)をテキストエディタで開きます。
(1) <INSTALLDIR>\domains\<ドメイン名>\config\server.policy
(2) <INSTALLDIR>\lib\templates\server.policy
(3) <INSTALLDIR>\lib\appclient\client.policy
(※2) |
(1)のポリシーファイルはドメイン毎に存在します。
ドメインが複数ある場合には、それぞれのドメインに対し編集を行ってください。
|
(※3) |
(2)のポリシーファイルを編集することで、今後作成するドメインについては 手順2の対応は不要となります。
|
手順2.コードベース指定(codeBase)なしで権限を定義している箇所に、次の SerializablePermission 権限を追記します。
grant {
:
permission java.io.SerializablePermission "enableCustomValueHanlder"; (←この行を追記)
permission java.io.SerializablePermission "enableCustomValueHandler"; (←この行を追記)
};
(※4) |
[関連情報]のオラクル社リリースノートに記載のとおり、2016年10月リリース版で「enableCustomValueHanlder」のスペルミスが修正されました。
本対処では、スペルミス修正前後で有効な対処となるよう、2つのエントリを追加してください。
|