Configuración del archivo was.policy para la seguridad de Java 2
Debe actualizar el archivo was.policy si la aplicación tiene recursos específicos a los que acceder.
Antes de empezar
raíz_perfil/config/cells/nombre_célula/applications/
nombre_archivo_ear/deployments/nombre_aplicación/META-INF/was.policy
Consulte los archivos de política de seguridad de Java 2 para obtener la lista de archivos de política disponibles que están soportados en WebSphere Application Server versión 6.1.
La unión de los permisos contenidos en los siguientes archivos se aplica
a la aplicación de empresa WebSphere Application Server:
- Todo archivo de políticas que esté especificado en las propiedades policy.url.* del archivo java.security.
- Los archivos app.policy, gestionados por la configuración y los servicios de duplicación de archivos.
- El archivo server.policy.
- El archivo java.policy.
- El archivo was.policy de la aplicación.
- La especificación de permiso del archivo ra.xml.
- La biblioteca compartida, que es el archivo library.policy.
Los cambios realizados en estos archivos se duplican en otros nodos de la célula.
Símbolo | Definición |
---|---|
file:${application} | Los permisos se aplican a todos los recursos utilizados en la aplicación |
file:${jars} | Los permisos se aplican a todos los archivos JAR (Java Archive) de programa de utilidad de la aplicación |
file:${ejbComponent} | Los permisos se aplican a los recursos de enterprise bean de la aplicación |
file:${webComponent} | Los permisos se aplican a los recursos web de la aplicación |
file:${connectorComponent} | Los permisos se aplican a los recursos de conector de la aplicación |
En WebSphere Application
Server, las aplicaciones que manipulan las hebras deben tener los permisos de hebra
correspondientes especificados en el archivo was.policy o app.policy.
Si no se especifican los permisos de hebra, la aplicación no puede
manipular las hebras y WebSphere Application Server crea una excepción java.security.AccessControlException. Si añade los permisos al archivo
was.policy de una aplicación determinada, no es necesario
reiniciar WebSphere Application Server. Un administrador debe añadir el siguiente código a un
archivo was.policy o app.policy para que una aplicación pueda
manipular las hebras:
grant codeBase "file:${application}" {
permission java.lang.RuntimePermission "stopThread";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
};
Un administrador puede añadir los permisos de hebra al archivo
app.policy, pero el cambio de permiso requiere reiniciar
WebSphere Application Server.Importante: En el archivo was.policy no se admiten las
palabras clave Signed By (Firmado
por) ni Principal de JAAS
(Java Authentication and Authorization
Service). Se admite la palabra clave Signed By en los archivos de política java.policy, server.policy y clientSpolicy. Se admite
la palabra clave principal de JAAS en un archivo de políticas JAAS cuando se especifica mediante la propiedad del sistema de JVM
(Java Virtual Machine) java.security.auth.policy. Puede establecer estáticamente los archivos de
políticas de autorización en el archivo java.security.auth.policy con
auth.policy.url.n=URL, donde URL es la ubicación de la
política de autorización.
Excepto en estos bloques, el nombre de módulo puede especificarse para valores granulares.
Por ejemplo,
grant codeBase "file:DefaultWebApplication.war" {
permission java.security.SecurityPermission "printIdentity";
};
grant codeBase "file:IncCMP11.jar" {
permission java.io.FilePermission
"${user.install.root}${/}bin${/}DefaultDB${/}-",
"read,write,delete";
};
Símbolo | Definición |
---|---|
${app.installed.path} | Vía de acceso donde se instala la aplicación |
${was.module.path} | Vía de acceso donde se instala el módulo |
${current.cell.name} | Nombre de célula actual |
${current.node.name} | Nombre de nodo actual |
${current.server.name} | Nombre de servidor actual |
Acerca de esta tarea
Consejo: Los errores de sintaxis de los archivos de política harán que el servidor de aplicaciones no se
pueda iniciar. Preste atención cuando edite estos archivos de política.
Procedimiento
Resultados
Ejemplo
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
![[z/OS]](../images/ngzos.gif)
![[IBM i]](../images/iseries.gif)
Nota: Los ejemplos siguientes están divididos en varias líneas sólo con fines ilustrativos. En realidad se entran los permisos en una línea.
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
${was.install.root}/java/ext/mail.jar read)
Cuando un programa Java recibe esta excepción y está justificado añadir este permiso, añada el siguiente permiso al archivo was.policy:
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
grant codeBase "file:ubicación_instalada_cliente_usuario" {
permission java.io.FilePermission
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};
Para determinar si se debe añadir un permiso, consulte Excepción de control de acceso de la seguridad de Java 2.