viernes, febrero 22, 2008

Problema firmando jars: No se pudo validar la firma

Desde hace un tiempo me ha dado por distribuir algunas aplicaciones de escritorio sobre las que he trabajado usando Webstart. Webstart es una, ehm... digamos tecnología de Java, que permite la distribución de aplicaciones a través de internet, facilitando las descargas y los procesos de actualización.

Una de las salvedades que hay que forzosamente considerar es la de firmar digitalmente cada archivo jar ligado a la aplicación. De esta manera se le permite acceder a muchas funcionalidades que por principio están restringidas.

En este caso me tocó firmar una aplicación más o menos grande, de muchos jars. Al momento de probar para asegurarme que todo funcionara adecuadamente me arrojó el error : "No se pudo validar la firma del jar log4j.jar"

Trás revisar otra de las mitades de los enlaces de Google, llegue a una consulta en el foro oficial de Java, donde frente al mismo problema la solución se vislumbraba luego de inspeccionar los jars firmados, abriéndolos como buen archivo comprimido que son y revisando la carpeta META-INF.

El problema: Webstart aparentemente o admite una sola firma para cada jar, o exige que todos los jars involucrados tengan las mismas firmas. Se daba el caso que estaba utilizando una librería previamente firmada con otro certificado. Asi que si les llega a suceder, revisen que en al carpeta META-INF de su jar con problemas sólo esté el par de archivos de extensiones .SF y .RSA o .SF y .DSA .

Solución: Si tienen un trio de archivos con estas extensiones, mejor asegúrense que las librerias de origen no estén previamente firmadas.

Ojala esto le sirva a alguien.

No hay comentarios.: