Cosminexus V9 アプリケーションサーバ 機能解説 互換編

[目次][用語][索引][前へ][次へ]

3.11.5 web.policySecurityManager定義ファイル

<この項の構成>
(1) 形式
(2) ファイルの格納先
(3) 機能
(4) 記述例
(5) 注意事項

(1) 形式

J2SEのプロパティファイル形式です。

(2) ファイルの格納先

(3) 機能

SecurityManagerを設定します。SecurityManager設定ファイルによって,Java 2から導入されたセキュリティポリシーに基づくWebコンテナの実行時保護をします。例えば,次に示す現象を防止します。

なお,cjstartwebコマンドに,-securityオプションを付けることで,Webコンテナ実行時保護機能が有効になります。また,このファイルに不正な値を設定した場合,動作は保証されません。

Webコンテナサーバの稼働中に,このファイルの内容を変更した場合,変更した内容は,次回Webコンテナサーバを起動したときに反映されます。

(4) 記述例

使用されるポリシーファイルの内容を次に示します。

// (1)
// Grant all permissions to the java extensions 
grant codeBase "file:${java.home}/lib/ext/-" {
permission java.security.AllPermission;
};
 
// (2)
// Grant all permissions to the java tools, etc
// Note: java.home is the jre, not the installation dir for the jdk 
grant codeBase "file:${java.home}/../lib/*" {
permission java.security.AllPermission;
};
 
 
// (3)
// Grant all permissions to anything loaded from the 
// EJB server itself
grant codeBase "file:${ejbserver.install.root}/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${tpbroker.java.home}/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/DABJ/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/manager/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/c4web/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/c4web/exlib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/jaxp/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/CTM/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/PRF/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/wss/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/XMLSEC/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${hntrlib.home}/classes/*" {
grant codeBase "file:${program.files.home}/Hitachi/HNTRLib2/classes/*" {
permission java.security.AllPermission;
};
 
// (4)
// webapp policy
grant codeBase "file:${webserver.install.root}/containers/${webserver.serverName}
/webapps/-" {
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.io.FilePermission "<<ALL FILES>>", "read, write";
permission java.util.PropertyPermission "*", "read";
};
 
// (5)
// Grant minimal permissions to everything else:
grant  {
permission java.util.PropertyPermission "*", "read";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
};
  

記述例の(1)〜(5)について説明します。

(1)
JDKのextディレクトリ下のクラスファイルに対して次の権限を許可します。
  • すべてのアクセス権を許可

(2)
JDKのlibディレクトリ下のクラスファイルに対して次の権限を許可します。
  • すべてのアクセス権を許可

(3)
Webコンテナサーバが使用するクラスファイルに対して次の権限を許可します。
  • すべてのアクセス権を許可

(4)
Webアプリケーションのクラスファイルに対して次の権限を許可します。
  • すべてのライブラリのロードを許可
  • 印刷ジョブ要求を許可
  • すべてのソケット通信に対してネットワーク接続を許可
  • すべてのファイルに対し読み取り,および書き込みを許可
  • すべてのプロパティ情報の読み取りを許可

(5)
すべてのクラスファイルに対して次の権限を許可します。
  • すべてのプロパティ情報の読み取りを許可
  • 印刷ジョブ要求を許可
  • すべてのソケット通信に対してネットワーク接続を許可

(5) 注意事項

サーバをセットアップするときに生成されたweb.policyファイルには,Webコンテナサーバを動作させるために最低限必要な権限が記述されています。生成されたweb.policyファイルの記述行の削除および変更はしないでください。