Java 2 セキュリティーは、いくつかのポリシー・ファイルを使用 して、それぞれの Java プログラムごとに認可されたアクセス権を判別します。
WebSphere Application Server によってサポートされる使用可能な ポリシー・ファイルのリストについては、Java 2 セキュリティー・ポリシー・ファイル を参照してください。
java.policy ファイルは、/QIBM/ProdData/Java400/jdk15/lib/security/ ディレクトリーにあります。
オペレーティング・システム全体で使用されるようにファイルを編集しないでください。
java.policy ファイルは、
ノード上の Java 仮想マシン (JVM) で実行されるすべての Java プログラムで共用される、
グローバルなデフォルト・ポリシー・ファイルです。
java.policy ファイルへの変更は、ノードに対してローカルに行われます。
デフォルトの Java ポリシーは自動的に取得されます。ポリシー・ファイルに構文エラーが
あると、アプリケーション・サーバーは失敗します。
更新された java.policy ファイルは、ローカル・ノード上のすべての
JVM で実行されるすべての Java プログラムに適用されます。
プログラムを再始動して、変更を有効にします。
このファイルには変更を加えないでください。ノード上の Java プログラムの一部に特定の変更を加える必要があり、
さらに java.policy ファイルを更新する必要がある場合は、ポリシー・ツールを使用して
java.policy ファイルを慎重に変更します。
詳しくは、PolicyTool を使用したポリシー・ファイルの編集
を参照してください。
// 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"; };
アクセス権を追加するかどうかを判断するには、アクセス制御の例外 を参照してください。