Problemas con applets

soncheeu
20 de Noviembre del 2003
Hola a todos!

He creado un pequeño editor de textos con applets con jdk1.4.0. Supuestamente firmando el applet no hay problemas, pero no soy capaz de hacer que funcione. La verdad es que me estoy volviendo loca.

He seguido los siguientes pasos, que son los necesarios para la firma de applets:

A_ Desde el directorio donde tengo el codigo hago lo siguiente:
1._ Compilo el codigo:
%javac VentanaTexto.java
%javac EditorApplet.java

2._ Creo el fichero JAR:
%jar cvf Fichero.jar *.class

3._ Genero las claves:
%keytool -genkey -alias miAlias -keyalg rsa -dname "cn=yo" -keystore miAlmacen -storepass miContrasenha
(la contraseña para miAlias es la misma que la del almacen de claves)

4._ Firmo el fichero JAR:
%jarsigner -keystore miAlmacen -storepass miContrasenha -signedjar FicheroFirmado.jar Fichero.jar miAlias

5._ Exporto el certificado de la clave publica:
%keytool -export -keystore miAlmacen -storepass miContrasenha -alias miAlias -file Certificado.cer


B_ Tras esto, desde el directorio raiz del usuario:

1._ Copio los ficheros FicheroFirmado.jar y Certificado.cer

2._ Importo el certificado como un certificado verdadero
%keytool -import -alias miAlias -file Certificado.cer -keystore otroAlmacen -storepass otraContrasenha

3._ Modifico el fichero .java.policy para otorgar todos los permisos:
keystore "/home/usuario/otroAlmacen";
grant signedBy "miAlias" {
permission java.security.AllPermission;
};


Al ejecutar el applet con el appletviewer me da la siguiente excepcion:

java.security.AccessControlException: access denied (java.net.SocketPermission home resolve)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
at
java.security.AccessController.checkPermission(AccessController.java:401)
.....

Y si lo ejecuto con Netscape6 o con Opera6.0 la excepcion es la siguiente:

java.security.AccessControlException: access denied (java.io.FilePermission /usuario/PruebaEditor/editor/AppletEditor.class read)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
at
java.security.AccessController.checkPermission(AccessController.java:401)
...

Parece como si no tuviera en cuenta el .java.policy ¿Alguien tiene idea de lo que pasa? Gracias de antemano.

javi
20 de Noviembre del 2003
No importes el keystore, déjalo tal cual