Hitachi

Cosminexus V11 アプリケーションサーバ リファレンス 定義編(サーバ定義)


3.2.3 server.policy(バッチサーバ用セキュリティポリシーファイル)

〈この項の構成〉

(1) 形式

J2SEのセキュリティポリシーファイル形式に従います。

(2) ファイルの格納先

(3) 機能

バッチサーバを実行するJavaVMのセキュリティポリシーを指定します。

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

(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:${ejbserver.install.root}/sfo/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${hntrlib.home}/classes/*" {
permission java.security.AllPermission;
};
 
 
// (4)
// Grant all permissions to the container generated stubs and
// implementation classes
grant codeBase "file:${ejbserver.http.root}/ejb/${ejbserver.serverName}/containers/-" {
permission java.security.AllPermission;
};
 
// (5)
// Grant all permissions to imported resource (datasource) implementations
// implementation classes
grant codeBase "http://*/ejb/${ejbserver.serverName}/import/resjars/-" {
permission java.security.AllPermission;
};
 
 
// (6)
// Grant permissions to resource adapters
// 
grant codeBase "file:${ejbserver.http.root}/ejb/${ejbserver.serverName}/rarjars/-" {
 
// For Cosminexus TP1 Connector & TP1/Client/J
permission java.util.PropertyPermission "*", "read, write";
 
// For Cosminexus TP1 Connector & TP1/Client/J & Cosminexus Reliable Messaging 
permission java.io.FilePermission "<<ALL FILES>>", "read, write, delete";
permission java.net.SocketPermission "*", "connect,listen,accept";
 
// For TP1/Message Queue - Access
permission java.lang.RuntimePermission "loadLibrary.*";
 
// For TP1/Message Queue - Access & Cosminexus Reliable Messaging
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "modifyThread";
 
// For DB Connector
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
 
// For authentication (from J2EE RI server.policy file)
permission javax.security.auth.PrivateCredentialPermission "* * \"*\"", "read";
 
// For Cosminexus Reliable Messaging
permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
permission java.lang.RuntimePermission "getenv.HRMDIR";
 
// For Cosminexus SOA FTP Inbound Adapter
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "setContextClassLoader";
permission java.lang.RuntimePermission "accessDeclaredMembers";
};
 
 
// (7)
// Grant permissions to JSP/Servlet
//
grant codeBase "file:${ejbserver.http.root}/web/${ejbserver.serverName}/-" {
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.net.SocketPermission "*", "connect";
permission java.io.FilePermission "<<ALL FILES>>", "read, write";
permission java.util.PropertyPermission "*", "read";
};
 
 
// (8)
// Grant permissions to Cosminexus Service Coordinator
//
grant codeBase "file:${cosminexus.home}/CSC/lib/*" {
permission java.lang.security.AIIPermission;
};
 
 
// (9)
//
// Grant minimal permissions to everything else:
//  Batch applications
//  EJBs
//  client implementation classes
grant  {
permission java.security.AllPermission;
};

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

(1)

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

  • すべてのアクセス権を許可

(2)

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

  • すべてのアクセス権を許可

(3)

バッチサーバが使用するクラスファイルに対して次の権限を許可します。

  • すべてのアクセス権を許可

(4)

バッチサーバが生成するスタブとスケルトンなどのクラスファイルに対して次の権限を許可します。

  • すべてのアクセス権を許可

(5)

バッチサーバが使用するリソースのクラスファイルに対して次の権限を許可します。

  • すべてのアクセス権を許可

(6)

バッチサーバが使用するリソースアダプタのクラスファイルに対して次の権限を許可します。

  • すべてのプロパティ情報に対して読み取り,および書き込みを許可

  • すべてのファイルに対して読み取り,書き込み,および削除を許可

  • すべてのソケット通信に対してネットワークへの接続,接続での待機,および接続の受け付けを許可

  • すべてのライブラリのロードを許可

  • スレッドグループの変更を許可

  • スレッドの変更を許可

  • すべてのリフレクション操作を許可

  • 任意のSubjectが所有する,すべての非公開Credentialへのアクセスを許可

  • Subjectに関連づけられた非公開CredentialのSetの変更を許可

  • 環境変数HRMDIRの値の取得を許可

注意事項
  • リソースアダプタ内のJARファイルの展開先であるバッチサーバ管理下のディレクトリが記載されています。

  • バッチサーバで動作するすべてのリソースアダプタが有効範囲です。

(7)

JSP/サーブレットのクラスファイルに対して次の権限を許可します。

  • すべてのライブラリのロードを許可

  • 印刷ジョブ要求を許可

  • スレッドの変更を許可

  • スレッドグループの変更を許可

  • すべてのソケット通信に対してネットワーク接続を許可

  • すべてのファイルに対して読み取り,および書き込みを許可

  • すべてのプロパティ情報の読み取りを許可

(8)

Service Coordinatorのクラスファイルに対して次の権限を許可します。

  • すべてのアクセス権を許可

(9)

すべてのクラスファイルに対して次の権限を許可します。

  • すべてのアクセス権を許可

(5) 注意事項