Una vez que tenemos el fichero jar firmado (sGetProps.jar
) y el certificado de seguridad (Javier.cert
), podemos intentar ejecutar directamente la aplicación, pero veremos que al utilizar el SecurityManger nos da problemas de seguridad.
java –cp sGetProps.jar GetProps
java –Djava.security.manager –cp sGetProps.jar GetProps
Para que la aplicación funcione correctamente, primero debemos importar el certificado ejecutando:
keytool –import alias Javier –file Javier.cert –keystore DAM
donde:
-import alias Javier
. Indica que se va a importar el certificado con el aliasJavier
.-keystore DAM
. Indica el keystore donde se guarda el certificado.
Una vez que tenemos el alias, tenemos que configurar las políticas de acceso para que el usuario Javier
pueda ejecutar correctamente la aplicación. Para ello, debemos realizar los siguientes pasos:
- Ejecutamos el comando
policytool
para iniciar la herramienta que permite administrar las políticas de acceso. - Nos vamos al menú Archivo -> Abrir y seleccionamos el fichero
java.policy
que se encuentra enc:\Archivos de programa\Java\jre7\lib\security\java.policy
(hay que tener cuidado porque la ubicación puede cambiar dependiendo de la versión de java). - Una vez abierto el fichero de políticas de acceso tenemos que indicar el keystore que vamos a utilizar. Para ello, en el menú Almacen de claves seleccionamos Editar y en el campo URL de almacén de claves indicamos la ubicación de las claves (que en nuestro caso es
file:\c:\ejemplo\DAM)
. - Añadimos una entrada para permitir el acceso de nuestro código. Para ello, realizamos los siguientes pasos:
- Pulsamos el botón Agregar Entrada de Política y podemos indicar el origen del fichero por su ubicación (
codebase
) o por su firma (SignedBy
). En esta ocasión, en el campoSignedBy
escribimos nuestro usuario Javier. - Pulsamos en Agregar Permiso y añadimos un permisos con los siguientes datos:
- añadimos una nueva política de acceso con los siguientes datos:
- PropertyPermission =
java.util.PropertyPermission
- Nombre de Destino =
user.home
- Acciones =
read
- PropertyPermission =
- Pulsamos en Agregar Permiso para añadir el segundo permiso con los siguientes datos:
- PropertyPermission =
java.util.PropertyPermission
- Nombre de Destino =
java.home
- Acciones =
read
- PropertyPermission =
- Finalmente, guardamos todos los cambios.
Una vez configurada la política de acceso, volvemos a ejecutar la aplicación y ya podemos comprobar que la aplicación se ejecuta correctamente.
java –Djava.security.manager –cp sGetProps.jar GetProps