Ver los Efectos del Fichero de Policía

Ahora que hemos creado el fichero de policía mypolicy deberíamos poder ejecutar con éxito la aplicación GetProps para leer las propiedades especificadas con un controlador de seguridad, como se ve en la siguiente figura..

Como se mencionó al final de la lección Visión Rápida para Controlar Applets, siempre que ejecutemos un applet o una aplicación con un controlador se seguridad los ficheros de policía que son cargados y usados por defecto son los especificados en el "security properties file", que está localizado en uno de los siguientes directorios:

  Windows:
    java.home\lib\security\java.security 
  UNIX:
    java.home/lib/security/java.security
Observa que java.home indica el directorio en el que se instaló el JRE.

Tenemos dos posibles formas de hacer que el fichero mypolicy sea considerado como parte de la policía general, además de los ficheros de policía especificados en el fichero de propiedades de seguridad. Podemos especificar el fichero de policía adicional en una propiedad pasada al sistema de ejecución, como se describe en Aproximación 1, o añadir una nueva línea al fichero de propiedades de seguridad, como se describe en Aproximación 2.

Aproximación 1

Podemos usar un argumento de la línea de comandos para el intérprete, -J-Djava.security.policy, para especificar un fichero de policía que debería ser usado además de los especificados en el fichero de propiedades de seguridad.

Debemos asegurarnos de que estamos en el directorio que contiene GetProps.class y mypolicy.Lueog podemos ejecutar la aplicación GetProps y pasarle el fichero de policía mypolicy al intérprete tecleando lo siguiente en la línea de comandos:

java -Djava.security.manager
     -Djava.security.policy=mypolicy GetProps
(Recuerda que -Djava.security.manager se requiere para poder ejecutar una aplicación con un controlador de seguridad, como se vió en el paso Ver Cómo Restringir las Aplicaciones.)

El programa debería reportar los valores de las propiedades "user.home" y "java.home".

Si la aplicación todavía reporta un error, es que hay algo erróneo en el fichero de policía. Debemos usar de nuevo la herramienta Policy Tool para corregir los posibles errores.

Aproximación 2

Podemos especificar un número de URLs en las propiedades policy.url.n en el fichero de propiedades de seguridad y se cargarán todos los ficheros de policía designados. Por eso una forma de hacer que el fichero mypolicy se considerado por el intérprete Java es añadir una entrada especificando este fichero de policía en el fichero de propiedades de seguridad.

Ya hemos creado una entrada en el última parte de la lección Visión Rápida para Controlar Applets. Si nuestro fichero de propiedades de seguridad todavía tiene esta entrada, estamos listos para ejecutar la aplicación. De otra forma necesitamos añadir la entrada. Para hacerlo, abrimos el fichero de propiedades de seguridad en un editor que soporte ficheros de texto ASCII. Luego añade la siguiente línea después de la línea que empieza con policy.url.2:

  Windows:
    policy.url.3=file:/C:/Test/mypolicy
  UNIX:
    policy.url.3=file:${user.home}/test/mypolicy
En un sistema UNIX también puedes especificar tu directorio home como
policy.url.3=file:/home/susanj/test/mypolicy

Ejecutar la Aplicación

Ahora deberíamos poder ejecutar la aplicación con éxito.
java -Djava.security.manager GetProps

Al igual que con la aproximación 1, si todavía obtenemos una excepción de seguridad, es que hay algo erróneo en el fichero de policía.


Importante: Antes de continuar probablemente querrás borrar la línea que acabamos de añadir al fichero de propiedades de seguridad, ya que no querrás que el fichero mypolicy sea incluido cuando no estás ejecutando las lecciones del tutor.

Ozito