app.policy ファイルのアクセス権
Java™ 2 セキュリティーは、いくつかのポリシー・ファイルを使用して、それぞれの Java プログラムごとに認可されたアクセス権を判別します。 以下のファイルに含まれるアクセス権の組み合わせが、WebSphere® Application Server エンタープライズ・アプリケーションに適用されます。この組み合わせは、認可されたアクセス権を判別します。
- java.security ファイル内の policy.url.* properties で指定されるすべてのポリシー・ファイル。
- 構成およびファイル複製のサービスで管理される app.policy ファイル。
- server.policy ファイル。
- java.policy ファイル。
- アプリケーション was.policy ファイル。
- ra.xml ファイルの許可仕様。
- library.policy ファイルである共有ライブラリー。
これらのファイルに加えられた変更は、WebSphere Application Server Network Deployment セル内の他のノードに複製されます。
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
ポリシー・ファイルを抽出するには、 コマンド・プロンプトを使用し、ご使用の環境に適切な変数値を使用して以下のコマンドを 1 行で入力します。
![[Windows]](../images/windows.gif)
wsadmin> set obj [$AdminConfig extract cells/cell_name/node/node_name/app.policy c:¥temp¥test¥app.policy]
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
wsadmin> set obj [$AdminConfig extract cells/cell_name/node/node_name/app.policy /temp/test/app.policy]
ポリシー・ツールを使用して、抽出された app.policy ファイルを編集します。詳しくは、 PolicyTool を使用した Java 2 セキュリティー用のポリシー・ファイルの編集を参照してください。app.policy ファイルに対する変更は、 ノード上でローカルに行われます。
ポリシー・ファイルをチェックインするには、 コマンド・プロンプトを使用し、ご使用の環境に適切な変数値を使用して以下のコマンドを 1 行で入力します。
![[Windows]](../images/windows.gif)
wsadmin> $AdminConfig checkin cells/cell_name/nodes/node_name/app.policy c:¥temp¥test¥app.policy $obj
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
wsadmin> $AdminConfig checkin cells/cell_name/nodes/node_name/app.policy temp/test/app.policy $obj
シンボル | 意味 |
---|---|
file:${application} | アクセス権は、アプリケーション内のすべてのリソースに適用されます。 |
file:${jars} | アクセス権は、アプリケーション内のすべてのユーティリティー Java アーカイブ (JAR) ファイルに適用されます。 |
file:${ejbComponent} | アクセス権は、アプリケーション内のエンタープライズ Bean リソースに適用されます。 |
file:${webComponent} | アクセス権は、アプリケーション内の Web リソースに適用されます。 |
file:${connectorComponent} | アクセス権は、アプリケーション内のコネクター・リソースと、スタンドアロンのコネクター・リソース内のコネクター・リソースの、両方に適用されます。 |
シンボル | 意味 |
---|---|
${app.installed.path} | アプリケーションがインストールされているパス |
${was.module.path} | モジュールがインストールされているパス |
${current.cell.name} | 現在のセル名 |
${current.node.name} | 現在のノード名 |
${current.server.name} | 現在のサーバー名 |
WebSphere Application Server で用意されている app.policy ファイル
は、profile_root/config/cells/cell_name/nodes/node_name/app.policy に
あります。
これには、以下のデフォルトのアクセス権が含まれています。
grant codeBase "file:${application}" {
// The following are required by JavaMail
permission java.io.FilePermission "${was.install.root}${/}lib${/}activation-impl.jar", "read";
permission java.io.FilePermission "${was.install.root}${/}lib${/}mail-impl.jar", "read";
};
grant codeBase "file:${jars}" {
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${connectorComponent}" {
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${webComponent}" {
permission java.io.FilePermission "${was.module.path}", "read";
permission java.io.FilePermission "${was.module.path}${/}-", "read, write"
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${ejbComponent}" {
permission java.lang.RuntimePermission "queuePrintJob";
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.net.SocketPermission "*", "connect";
permission java.util.PropertyPermission "*", "read";
permission java.io.FilePermission "*", "read,write";
};
![[Windows]](../images/windows.gif)
java.security.AccessControlException: access denied
(java.io.FilePermission
C:¥WebSphere¥AppServer¥java¥jre¥lib¥ext¥mail.jar read)
Java プログラムがこの例外を受け取り、このアクセス権の追加が認められたら、 アクセス権を server.policy ファイルに追加してください。以下に例を示します。
![[Windows]](../images/windows.gif)
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"C:¥WebSphere¥AppServer¥java¥jre¥lib¥ext¥mail.jar", "read";
};
![[IBM i]](../images/iseries.gif)
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};
前述のアクセス権に関する情報行は、表示上の理由で分割されています。 実際には、アクセス権は 1 行で入力してください。
アクセス権を追加するかどうかを判断するには、AccessControlException のトピックを参照してください。
更新した app.policy ファイルが有効になるように、すべての WebSphere Application Server エンタープライズ・アプリケーションを再始動します。