java.policy ファイルのアクセス権
Java™ 2 セキュリティーは、いくつかのポリシー・ファイルを使用して、各 Java プログラムの付与された権限を決定します。
WebSphere® Application Server がサポートしている使用可能なポリシー・ファイルのリストについては、Java 2 セキュリティー・ポリシー・ファイルを参照してください。
IBM Technology for Java の場合、java.policy ファイルは java_home/jre/lib/security ディレクトリーにあります。
すべての JVM で java.policy ファイルはシステム全体で使用されます。サーバーで java.policy ファイルを編集しないでください。
![[IBM i]](../images/iseries.gif)
- QShell を入力します。
- cd to profile_root/bin
- 次を起動します。wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'
java.policy ファイルは、ノード上の Java 仮想マシン (JVM) で実行されるすべての Java プログラムで共有される、グローバルなデフォルト・ポリシー・ファイルです。
java.policy ファイルへの変更は、ノードに対してローカルに行われます。
デフォルトの Java ポリシーは自動的に取得されます。ポリシー・ファイルに構文エラーが
あると、アプリケーション・サーバーは失敗します。
更新された java.policy ファイルは、ローカル・ノード上のすべての JVM で実行されるすべての Java プログラムに適用されます。
プログラムを再始動して、変更を有効にします。
このファイルには変更を加えないでください。ノード上の Java プログラムの一部に特定の変更を加える必要があり、
さらに java.policy ファイルを更新する必要がある場合は、ポリシー・ツールを使用して
java.policy ファイルを慎重に変更します。
詳しくは、PolicyTool を使用した Java 2 セキュリティー用のポリシー・ファイルの編集を参照してください。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
java.policy ファイルのデフォルト権限
// Standard extensions get all permissions by default
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
// default permissions granted to all domains
grant {
// Allows any thread to stop itself using the java.lang.Thread.stop()
// method that takes no argument.
// Note that this permission is granted by default only to remain
// backwards compatible.
// It is strongly recommended that you either remove this permission // from this policy file or further restrict it to code sources
// that you specify, because Thread.stop() is potentially unsafe.
// See "http://java.sun.com/notes" for more information.
// permission java.lang.RuntimePermission "stopThread";
// allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen";
// "standard" properties that can be read by anyone
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version","read";
permission java.util.PropertyPermission "java.vm.specification.vendor","read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
};
ノード上の Java プログラムの中に、java.policy ファイルで デフォルトとして定義されていないアクセス権を必要とするものがある場合は、java.policy ファイルの更新を検討してください。 ほとんどの場合、java.policy ファイル以外のポリシー・ファイルが更新されます。アクセス権がなければ、java.security.AccessControlException 例外が発生します。 不足しているアクセス権は 、例外データにリストされます。
java.security.AccessControlException: access denied (java.io.FilePermission
C:¥WebSphere¥AppServer¥java¥jre¥lib¥ext¥mail.jar read)
前の 2 行は 1 つの連続した行として入力してください。
Java プログラムがこの例外を受け取って、このアクセス権の追加が認められたら、アクセス権を java.policy ファイルに追加してください。
grant codeBase "file:user_client_installed_location" {
permission java.io.FilePermission
"C:¥WebSphere¥AppServer¥java¥jre¥lib¥ext¥mail.jar", "read"; };
アクセス権を追加するかどうかを判断するには、『Java 2 セキュリティーのアクセス制御例外』を参照してください。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)