ctt-gob-es / clienteafirma

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

Chrome y Edge bloquean la firma de peticiones con más de un archivo. #243

Open jayllon opened 2 years ago

jayllon commented 2 years ago

Cuando una petición de firma tiene varios documentos, tanto chrome como edge están bloqueando llamadas consecutivas a autofirma. La primera funciona bien y abre la aplicación, pero en las siguientes, la consola vuelca un error como este:

Not allowed to launch 'afirma://sign?..........' because a user gesture is required.

sin embargo el "External protocol handler anti-flood protection" evita abrir y no se muestra ningún mensaje al usuario.

La operación termina con un "Fallo inesperado en el componente de firma: El tiempo para la recepcion de la firma por la pagina web ha expirado."

rubnix commented 2 years ago

Buenos días,

A mi me da el mismo problema.. esto por lo que he visto sucede cuando la firma la realizas usando el webservice mode, o sea, usando los servlets de almacenamiento intermedio, con lo que se abre la aplicacion de autofirma por cada fichero... sin embargo si usas websockets, abre una unica vez autofirma, y el resto de peticiones se realizan mediante llamadas via websocket.

Si alguien encuentra usa solución a esto, seria de agradecer...porque con websockets no se pueden usar los servlets intermedios de almacenamiento y esto limita bastante.

entuto commented 2 years ago

Buenos días,

estoy con el mismo problema. ¿Habéis encontrado alguna solución?

Muchas gracias.

Gamuci commented 2 years ago

Buenos días:

La solución es la que indica @rubnix , no utilizar el servidor intermedio. Para esto sólo hay que NO llamar a AutoScript.setForceWSMode(true) en el JavaScript de la aplicación que solicita la firma.

@rubnix, lo que no entiendo es por qué lo consideras una limitación. El servidor intermedio sólo funciona como canal entre AutoFirma y AutoScript. ¿Qué beneficio ves en que se utilice el servidor intermedio en lugar de los websockets?

Un saludo,

rubnix commented 2 years ago

Es una limitación porque obliga a utilizar la máquina del cliente para realizar el paso a base 64 del contenido del archivo, y tampoco puedes hacer operaciones en servidor en el momento de coger el archivo... Por ejemplo, tú podrías subir el archivo en un paso... Y más adelante realizar la firma sin tener la obligación de descargarte el archivo al navegador del usuario... A este tipo de cosas me refiero.