Migración de la política de seguridad de Java 2
Utilice este tema para obtener instrucciones relacionadas con la migración de la política de seguridad de Java™ 2
Acerca de esta tarea
Releases anteriores de WebSphere Application Server
WebSphere Application Server utiliza el gestor de seguridad de Java 2 en el tiempo de ejecución del servidor para evitar que las aplicaciones de empresa llamen a los métodos System.exit y System.setSecurityManager. Si las aplicaciones de empresa llaman a estas dos API (interfaces de programación de aplicaciones) Java, dichas API tendrán consecuencias no deseadas. La API System.exit, por ejemplo, hace que la Java Virtual Machine (proceso de servidor de aplicaciones) salga de forma prematura, lo que no es una operación beneficiosa para un servidor de aplicaciones.
Para soportar correctamente la seguridad de Java 2, todo el tiempo de ejecución del servidor se debe marcar como con privilegios (con las llamadas de la API doPrivileged insertadas en los lugares correctos) e identificar los conjuntos de permisos o políticas por omisión. El código de aplicación no tiene privilegios y está sujeto a los permisos que se han definido en los archivos de políticas. La instrumentación doPrivileged es importante y necesaria para soportar la seguridad de Java 2. Sin ella, se debe otorgar al código de aplicación los permisos requeridos por el tiempo de ejecución del servidor. Esta situación se debe al diseño y al algoritmo que utiliza la seguridad de Java 2 para aplicar comprobaciones de permisos. Consulte el algoritmo de comprobación de permisos de seguridad de Java 2.
- java.lang.RuntimePermission(exitVM)
- java.lang.RuntimePermission(setSecurityManager)
Se denegará el acceso a estos permisos al código de la aplicación independientemente de los datos incluidos en la política de seguridad de Java 2. No obstante, al tiempo de ejecución del servidor se le conceden estos permisos. No se aplicarán todas las demás comprobaciones de permisos.
- java.net.SocketPermission
- java.net.NetPermission
Sin embargo, no toda la ejecución del servidor del producto está marcada como privilegiada. Debe conceder al código de la aplicación todos los demás permisos aparte de los listados anteriormente o es posible que la aplicación de empresa no se ejecute correctamente. Esta política de seguridad de Java 2 para aplicaciones de empresa es amplia.
Modificaciones
La seguridad de Java 2 está totalmente soportada en WebSphere Application Server, lo que indica que se implementan todos los permisos. La política de seguridad de Java 2 por omisión de una aplicación de empresa es el conjunto de permisos recomendados definido por la especificación Java EE (Java Platform, Enterprise Edition) Versión 1.4. Consulte el archivo raíz_perfil/config/cells/nombre_célula/nodes/nombre_nodo/app.policy de la política de seguridad de Java 2 por omisión que se otorga a las aplicaciones de empresa. Esta política es mucho más estricta comparada con los releases anteriores.
La política completa es declarativa. El gestor de seguridad del producto observa todas las políticas declaradas en los archivos de políticas. Existe una excepción a esta regla: a las aplicaciones de empresa se les deniega el acceso a los permisos declarados en el archivo raíz_perfil/config/cells/nombre_célula/filter.policy.
En el código de aplicación, no utilice el permiso setSecurityManager para establecer un gestor de seguridad. Cuando una aplicación utiliza el permiso setSecurityManager, hay un conflicto con el gestor de seguridad interno de WebSphere Application Server. Si debe establecer un gestor de seguridad en una aplicación para RMI, también deberá habilitar la opción Utilice la seguridad de Java 2 para limitar el acceso de las aplicaciones a los recursos locales en la página de seguridad global de la consola administrativa de WebSphere Application Server. A continuación, WebSphere Application Server registra un gestor de seguridad. El código de la aplicación puede verificar que este gestor de seguridad está registrado utilizando la interfaz del programa de aplicación System.getSecurityManager().
Migración de propiedades del sistema
- java.security.policy. La vía de acceso absoluta al archivo de políticas (es necesario llevar a cabo una acción). Esta propiedad del sistema contiene ambos permisos del sistema, los permisos otorgados a la JVM (Java Virtual Machine) y el tiempo de ejecución del servidor del producto, y los permisos de la aplicación de empresa. Migre la política de seguridad de aplicaciones de empresa Java 2 a Versión 9.0. Para la migración de la política de seguridad Java 2, consulte los pasos de migración de la política de seguridad de Java 2.
- enableJava2Security. Se utiliza para habilitar la implantación de la seguridad de Java 2 (no es necesaria ninguna acción). Esta propiedad del sistema está en desuso; se utiliza un distintivo en la API (interfaz de programación de aplicaciones) de la configuración de WebSphere para controlar si se debe habilitar la seguridad de Java 2. Habilite esta opción mediante la consola administrativa.
- was.home. Se ha ampliado el directorio de instalación de WebSphere Application Server (es posible que sea necesario realizar alguna acción). Esta propiedad del sistema está en desuso; se ha reemplazado por las propiedades ${user.install.root} y ${was.install.root}. Si el directorio contiene datos específicos de la instancia, entonces se utiliza ${user.install.root}; de lo contrario, se utiliza ${was.install.root}. Utilice cualquiera de estas propiedades para los entornos WebSphere Application Server o WebSphere Application Server, Network Deployment Consulte los pasos para migrar la política de seguridad de Java 2.
Migración de la política de seguridad de Java 2
No existe una manera fácil de migrar el archivo de políticas Java a Versión 9.0 automáticamente porque en el mismo archivo de políticas existe una mezcla de permisos del sistema y permisos de la aplicación. Copie manualmente la política de seguridad de Java 2 para las aplicaciones de empresa en un archivo was.policy o app.policy. Sin embargo, es preferible migrar la política de seguridad de Java 2 al archivo was.policy porque se utilizan símbolos o código básico relativo en lugar de una base de código absoluto. Este proceso tiene muchas ventajas. Otorgue los permisos definidos en was.policy sólo a la aplicación de empresa específica, mientras que los permisos del archivo app.policy se aplican a todas las aplicaciones de empresa que se ejecutan en el nodo al que pertenece el archivo app.policy.
Consulte Archivos de política de seguridad de Java 2. si desea más detalles sobre la gestión de políticas.
El ejemplo siguiente muestra la migración de una política de seguridad de Java 2 desde un release anterior. El contenido incluye el archivo de políticas de seguridad de Java 2 para la aplicación de empresa app1.ear y los permisos del sistema, que son permisos otorgados a la JVM (Java Virtual Machine) y al tiempo de ejecución del servidor del producto.
La ubicación predeterminada para el archivo de políticas de seguridad de
Java
2 es
raíz_perfil/properties/java.policy.
Para mayor claridad, se omiten los permisos predeterminados:
La ubicación predeterminada para el archivo de políticas de seguridad de
Java
2 es
raíz_perfil/properties/java.policy.
Para mayor claridad, se omiten los permisos predeterminados:
// Para ejemplos de productos
grant codeBase "file:${app_server_root}/installedApps/app1.ear/-" {
permission java.security.SecurityPermission "printIdentity";
permission java.io.FilePermission "${app_server_root}${/}temp${/}somefile.txt",
"read";
};
En este ejemplo, para una mejor ilustración, se migran todos los permisos como permisos a nivel de aplicación. Sin embargo, puede otorgar permisos a un nivel más granular a nivel de componente (a nivel Web, enterprise beans, conector o a nivel de componente JAR (Java Archive) de programa de utilidad) o puede otorgar permisos a un componente concreto.