Permisos de archivo java.policy

La seguridad de Java™ 2 utiliza varios archivos de políticas para determinar el permiso otorgado para cada programa Java.

Consulte Archivos de política de seguridad de Java 2 para ver la lista de archivos de política disponibles soportados por WebSphere® Application Server.

[IBM i]Para IBM Technology for Java, el archivo java.policy se encuentra en el directorio java_home/jre/lib/security. Para todas las JVM, el archivo java.policy se utiliza en todo el sistema. No edite el archivo java.policy en el servidor.

[IBM i]Utilice el mandato showVariables del objeto AdminTask para recuperar java_home para el nodo asociado con el perfil del servidor. Por ejemplo, si el nodo es miNodo:
  1. Especifique QShell.
  2. cd a profile_root/bin.
  3. Invoque wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'.

[z/OS][AIX Solaris HP-UX Linux Windows]El archivo java.policy es un archivo de políticas predeterminado global que comparten todos los programas Java que se ejecutan en la máquina virtual Java (JVM) en el nodo. Los cambios realizados en el archivo java.policy son locales al nodo. La política Java por omisión se selecciona automáticamente. Los errores de sintaxis de los archivos de políticas harán que el servidor de aplicaciones no se pueda iniciar. Un archivo java.policy actualizado se aplicará a todos los programas Java que se ejecutan en todas las JVM del nodo local. Reinicie los programas para que las actualizaciones entren en vigor. No se recomienda modificar este archivo. Si es necesario un cambio específico en algunos de los programas Java de un nodo y el archivo java.policy requiere actualización, modifique cuidadosamente el archivo java.policy con la herramienta de políticas. Para obtener más información, consulte Utilización de PolicyTool para editar archivos de política para la seguridad de Java 2.

[z/OS][AIX Solaris HP-UX Linux Windows]

Permisos predeterminados del archivo java.policy

El archivo java.policy no es un archivo de configuración gestionado por el depósito y el servicio de duplicación de archivos. Los cambios realizados en este archivo son locales y no se duplican en otras máquinas. El archivo java.policy proporcionado por WebSphere Application Server se encuentra en install_root/java/jre/lib/security/java.policy. Este archivo contiene los permisos predeterminados.
// 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";
       };

Si algunos programas Java de un nodo requieren permisos que no están definidos como valores por omisión en el archivo java.policy, actualice el archivo java.policy. La mayoría de las veces, deben actualizarse otros archivos de política en lugar del archivo java.policy. Si falta un permiso, se genera la excepción java.security.AccessControlException. El permiso que falta se indica en los datos de excepción.

Por ejemplo:
java.security.AccessControlException: access denied (java.io.FilePermission
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)

Escriba las dos líneas anteriores en una línea seguida.

Cuando un programa Java recibe esta excepción y está justificado añadir este permiso, añada un permiso al archivo java.policy.

Por ejemplo:
grant codeBase "file:user_client_installed_location" {   
permission java.io.FilePermission 
"C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read"; };

Para decidir si se debe añadir un permiso, consulte Excepción de control de accesos para seguridad Java 2.

[z/OS][AIX Solaris HP-UX Linux Windows]Reinicie todos los procesos Java para que el archivo java.policy actualizado entre en vigor.