Permisos de archivo java.policy
La seguridad de Java™ 2 utiliza varios archivos de política para determinar los permisos otorgados para cada programa Java.
Consulte Archivos de política de seguridad de Java 2. para obtener la lista de archivos de política disponibles soportados por WebSphere Application Server.
En el caso de IBM Technology para 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]](../images/iseries.gif)
- Especifique QShell.
- cd a raíz_perfil.
- Invoque wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=miNodo -variableName JAVA_HOME}'.
El archivo java.policy es un archivo de políticas global predeterminado que
comparten todos los programas Java que se ejecutan en la JVM (Java Virtual Machine) del 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 efectuar un cambio específico en alguno de los programas Java de un
nodo y se debe actualizar el archivo java.policy, modifique con cuidado el
archivo java.policy mediante 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.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Permisos predeterminados del archivo java.policy
// Las extensiones estándar obtienen todos los permisos de forma predeterminada
grant codeBase "file:${java.home}/lib/ext/*" {
permission java.security.AllPermission;
};
// los permisos por omisión se otorgan a todos los dominios
grant {
// Permite que cualquier hebra se autodetenga con el método java.lang.Thread.stop()
// que no acepta ningún argumento.
// Observe que este permiso se otorga por omisión sólo para ser
// compatible con versiones anteriores.
// Se recomienda enérgicamente eliminar este permiso
// de este archivo de política o limitarlo a fuentes de código
// que se especifiquen, porque Thread.stop() es en potencia peligroso.
// Consulte "http://java.sun.com/notes" para más información.
// permission java.lang.RuntimePermission "stopThread";
// permite a todos los usuarios escuchar en puertos sin privilegios
permission java.net.SocketPermission "localhost:1024-", "listen";
// Propiedades "estándar" que cualquier usuario puede leer
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 predeterminados 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.
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.
grant codeBase "file:ubicación_instalación_cliente_usuario" {
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 acceso para la seguridad de Java 2.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)