ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
247 stars 120 forks source link

-config "format=XAdES Enveloped" no funciona desde Mac #331

Open CodigoRed opened 1 year ago

CodigoRed commented 1 year ago

Desde la linea de comandos de Mac no funciona pero desde Windows sí. He visto que esta cuestión se ha planteado en diversas ocasiones pero no se le ha dado solución.

Gamuci commented 1 year ago

Hola, @CodigoRed:

Parece que en macOS hay un problema cuando le pasamos a Java un espacio a través de la aplicación. Incluso si lo proteges con comillas sigue considerándolo que lo que hay tras el espacio es otro parámetro. Lo mejor será que uses directamente el JAR de la aplicación:

Te pongo un ejemplo con las rutas completas que acabo de comprobar que funciona con AutoFirma 1.8.0 en macOS:

/Applications/AutoFirma.app/Contents/Resources/Home/bin/java -jar /Applications/AutoFirma.app/Contents/Resources/JAR/AutoFirma.jar sign -i ~/Desktop/Entrada/Entrada.xml -o ~/Documents/firma.xml -format XAdES -certgui -config "format=XAdES Enveloped"
Gamuci commented 1 year ago

Hay un modo de simplificar lo anterior. Te puedes crear un script que englobe la ejecución del JAR y tome los parámetros que le pases. Por ejemplo, puedes crearte un "autofirma.sh" con el siguiente contenido:

/Applications/AutoFirma.app/Contents/Resources/Home/bin/java -jar /Applications/AutoFirma.app/Contents/Resources/JAR/AutoFirma.jar "$@"

Con eso, puedes ejecutar la operación anterior con:

autofirma.sh sign -i ~/Desktop/Entrada/Entrada.xml -o ~/Documents/firma.xml -format XAdES -certgui -config 'format=XAdES Enveloped'

Ten en cuenta que cualquier parámetro que pueda tener espacios debería ir protegido con comilla simple en la llamada.