java.policy 文件许可权
Java™ 2 安全性使用若干策略文件,为每个 Java 程序确定授予的许可权。
请参阅 Java 2 安全策略文件,以获取 WebSphere® Application Server 支持的可用策略文件列表。
对于 IBM Technology for Java,java.policy 文件位于 java_home/jre/lib/security 目录中。对于所有 JVM,java.policy 文件都在系统范围中使用。不要在服务器上编辑 java.policy 文件。
![[IBM i]](../images/iseries.gif)
- 输入 QShell。
- 切换到 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)
前两行是连续的一行。
当 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)