lunes, 9 de julio de 2012

Cómo firmar un Applet

Un applet es un componente de software que se ejecuta en el contexto de otro programa, por ejemplo un navegador web.

Un Japplet es un applet escrito en Java, que puede incrustarse en un documento HTML, es decir en una página web. Como ejemplo:

<html>
<head>
<title> Hello Applet-World! </title>
</head>

<body>Applet:<P>
<applet code="gabybosetti.Applet.class"
archive="MiPrimeraApplet.jar"
width= 400 height =300>
</applet>
</body>
</html>

Si bien los applets son muy prácticos, ya que permiten ser cargados en una página web y que cualquier persona pueda ejecutarlos, tienen un problema: la JVM tiene un esquema de seguridad que permite que los applets no tengan acceso a ciertas partes del sistema operativo del usuario para evitar que, por ejemplo, un Applet mal intencionado borre archivos del sistema.

Es por ello que, por ejemplo, los JFileChooser no funcionan a menos que el jar esté firmado. Ésto permite al usuario saber quién programó determinada Applet y, si confía en el desarrollador, aceptar la ejecución del mismo con todos los permisos.

Para firmar un JAR se debe tener una licencia paga, pero para fines no comerciales y de estudio se puede firmar de la siguiente manera:

  1. Abrimos una terminal
  2. keytool -genkey -keystore myKeyStore -alias me
  3. keytool -selfcert -keystore myKeyStore -alias me
  4. jarsigner -keystore myKeyStore jarfile.jar me
Cada vez que se edite el jar se deberá firmar nuevamente.

Al momento de abrir el archivo HTML en el navegador, para su correcta visualización se debe tener instalado el plugin de Java para el Navegador. EN caso de no tenerlo, abrir una terminal y ejecutar lo siguiente:

sudo apt-get install icedtea-7-plugin
That's all!