Adición del archivo was.policy a las aplicaciones para la seguridad de Java 2

Es posible que una aplicación necesite un archivo was.policy si accede a recursos que requieren más permisos de los concedidos en el archivo app.policy por omisión.

Acerca de esta tarea

Si la seguridad de Java™ 2 está habilitada para WebSphere Application Server, todas las aplicaciones que se ejecutan en WebSphere Application Server se someterán a una comprobación de seguridad antes de acceder a los recursos del sistema. Es posible que una aplicación necesite un archivo was.policy si accede a recursos que requieren más permisos de los concedidos en el archivo app.policy por omisión. Por omisión, la seguridad del producto lee un archivo app.policy situado en cada nodo y otorga los permisos del archivo app.policy a todas las aplicaciones. Incluya cualquier permiso necesario en el archivo was.policy. El archivo was.policy sólo es necesario si una aplicación requiere permisos adicionales.

El archivo de políticas por omisión de todas las aplicaciones se especifica en app.policy. Este archivo es proporcionado por la seguridad del producto, es común a todas las aplicaciones y no debe modificarse. Añada cualquier permiso nuevo que sea necesario para una aplicación al archivo was.policy.

El archivo app.policy proporcionado por WebSphere Application Server reside en raíz_servidor_apl/config/cells/profile/profile_name/config/nombre_célula/nodes/nombre_nodo/app.policy. Los contenidos del archivo app.policy se muestran en el ejemplo siguiente:

Atención: En el siguiente código de ejemplo, los dos permisos que requiere JavaMail se han dividido en dos líneas sólo con fines ilustrativos. Escriba el permiso en una línea.
// Los siguientes permisos se aplican a todos los componentes bajo la aplicación.

grant codeBase "file:${application}" {
   // JavaMail necesita los siguientes

  permission java.io.FilePermission "
        ${was.install.root}${/}lib${/}activation-impl.jar",
"read";

  permission java.io.FilePermission "
        ${was.install.root}${/}lib${/}mail-impl.jar","read";

  };
   // Los siguientes permisos se aplican a todos los archivos .jar (excepto 
   //  los archivos JAR de enterprise beans) de la aplicación.
grant codeBase "file:${jars}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

// Los siguientes permisos se aplican a los recursos de conector de la aplicación
grant codeBase "file:${connectorComponent}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

// Los siguientes permisos se aplican a todos los módulos web (archivos .war)
// de la aplicación.
grant codeBase "file:${webComponent}" {
  permission java.io.FilePermission "${was.module.path}${/}-", "read, write";  
       //  donde "was.module.path" es la vía de acceso el módulo web
       //  está instalado. Para obtener los demás símbolos, consulte el concepto de política dinámica.
  permission java.lang.RuntimePermission "loadLibrary.*";
  permission java.lang.RuntimePermission "queuePrintJob";
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

// Los siguientes permisos se aplican a todos los módulos EJB de la aplicación.
grant codeBase "file:${ejbComponent}" {
 permission java.lang.RuntimePermission "queuePrintJob";
 permission java.net.SocketPermission "*", "connect";
 permission java.util.PropertyPermission "*", "read";
};

Si se requieren más permisos para una aplicación o uno o varios módulos de una aplicación, utilice el archivo was.policy de dicha aplicación. Por ejemplo, para otorgar permisos adicionales a toda la aplicación, utilice codeBase de ${aplicación} y añada los permisos necesarios. De forma similar, utilice codeBase de ${webComponent} y ${ejbComponent} para otorgar permisos adicionales a todos los módulos web y todos los módulos de enterprise bean de la aplicación. Puede asignar permisos adicionales a cada módulo (el archivo .war o el archivo .jar), tal como se muestra en el siguiente ejemplo.

En este ejemplo siguiente se ilustra cómo añadir permisos adicionales para una aplicación al archivo was.policy:

Atención: En el siguiente código de ejemplo, el permiso del módulo EJB se ha dividido en dos líneas sólo con fines ilustrativos. Escriba el permiso en una línea.
// otorgar permisos adicionales a un módulo web
grant codeBase " file:aWebModule.war" {
 permission java.security.SecurityPermission "printIdentity";
};

// otorgar permiso adicional a un módulo EJB
grant codeBase "file:aEJBModule.jar"  {
    permission java.io.FilePermission "
       ${user.install.root}${/}bin${/}DefaultDB${/}-", "read,write,delete";   
    // donde, ${user.install.root} es la propiedad del sistema cuyo valor está 
    // situado en el directorio raíz_servidor_apl.
 };

Para utilizar un archivo was.policy de la aplicación, realice los pasos siguientes:

Procedimiento

  1. Cree un archivo was.policy con la herramienta Policytool. Si desea más información sobre la herramienta de política, consulte Utilización de PolicyTool para editar archivos de política para la seguridad de Java 2.
  2. Añada los permisos necesarios al archivo was.policy utilizando la herramienta de política.
  3. Coloque el archivo was.policy en el archivo EAR (Enterprise Archive) de la aplicación bajo el directorio META-INF. Actualice el archivo EAR de la aplicación con el archivo was.policy recién creado mediante el mandato jar.
  4. Compruebe que el archivo was.policy se haya insertado e inicie la herramienta de ensamblaje.
    [IBM i][z/OS]Nota: No está disponible una herramienta de ensamblaje. Utilice una herramienta de ensamblaje en otra plataforma, como por ejemplo Linux Intel o Windows.
  5. Verifique que el archivo was.policy de la aplicación sea sintácticamente correcto. En una herramienta de ensamblaje, pulse con el botón derecho del ratón en el módulo de aplicación de empresa y pulse Ejecutar validación.

Resultados

Un archivo EAR de aplicación está ahora preparado para ejecutarse cuando la seguridad de Java 2 esté habilitada.

Ejemplo

Este paso es necesario para que las aplicaciones se ejecuten correctamente cuando la seguridad de Java 2 esté habilitada. Si no se ha creado el archivo was.policy y no contiene los permisos necesarios, es posible que la aplicación no pueda acceder a los recursos del sistema.

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,

[IBM i][z/OS]
java.security.AccessControlException: access denied (java.io.FilePermission 
${was.install.root}/java/ext/mail.jar read)
Cuando un programa de aplicación recibe esta excepción y está justificado añadir este permiso, añada un permiso al archivo was.policy, por ejemplo: [IBM i][z/OS]
grant codeBase
"file:ubicación_instalación_cliente_usuario" { 
  permission java.io.FilePermission 
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
};

Las líneas de información sobre permisos anteriores se han dividido para la ilustración. Escriba el permiso en una línea.

Qué hacer a continuación

Instale la aplicación.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_waspolicy
File name: tsec_waspolicy.html