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.
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.
showVariables
del objeto AdminTask para recuperar java_home para el nodo asociado con el perfil del servidor. Por ejemplo, si el nodo es miNodo:- Especifique QShell.
- cd a
profile_root/bin
. - Invoque
wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'
.
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.
Permisos predeterminados del archivo 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";
};
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.
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: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.