Interoperabilidad de los servicios telemáticos de la Administración Pública de la CAC Página 1 de 7 Integración del componente Websigner para ASF 5.2.2.2 Informe técnico Rev. Fecha Descripción 0 09/10/12 Redacción inicial 1 12/11/12 Se elimina la planificación 2 12/06/2013 Nuevo método PlatinoWebSigner.getPLATINO_URL() Documento PLA-DOC-TEC-20121009 Integración de WebSigner para ASF5..pdf Ubicación en eCarpeta Preparado por Revisado por Aprobado por OTP OTP Oficina Técnica de Platino Oficina Técnica de Platino DGTNT Fecha: 12/06/2013 Fecha: 12/06/2013 Fecha: 20121004 - Informe para obtener lista de CA para ASF 5.2_2.odt.pdf Página 2 de 7 ÍNDICE 1 INTRODUCCIÓN .............................................................................................................. 3 2 IDENTIFICACIÓN DEL PROBLEMA ................................................................................ 4 3 SOLUCIÓN ....................................................................................................................... 5 3.1 Actualizaciones realizadas sobre el proyecto PlatinoWebSignatureTest.war ............ 5 Servicio de soporte para la Plataforma de Interoperabilidad de la Administración Pública de la Comunidad Autónoma de Canarias PLATINO (OTP) 20121004 - Informe para obtener lista de CA para ASF 5.2_2.odt.pdf 1 Página 3 de 7 INTRODUCCIÓN Este informe tiene como objetivo mostrar los cambios que se han realizado en el proyecto PlatinoWebSignerTest.war1, proyecto desarrollado para que sirva de ejemplo a los desarrolladores del Gobierno de Canarias en la integración del componente de WebSigner en aquellas páginas que lo requieran para la firma en el cliente. Este cambio viene motivado por la actualización del servicio de firma y sellado electrónico pasando a la versión de ASF 5.2. En el proyecto de ejemplo, la forma de obtener las CA válidas y las restricciones de estas CA se hacia utilizando librerías que obtenían la información del servicio de firma. Con la próxima actualización del servicio de firma, el código utilizado actualmente dará un error y no podrá obtenerse esta lista de CA válidas. 1 http://www.gobiernodecanarias.org/platino/docs/PlatinoWebSignerTest.war.zip Servicio de soporte para la Plataforma de Interoperabilidad de la Administración Pública de la Comunidad Autónoma de Canarias PLATINO (OTP) 20121004 - Informe para obtener lista de CA para ASF 5.2_2.odt.pdf 2 Página 4 de 7 IDENTIFICACIÓN DEL PROBLEMA El problema radica en la versión de los .jar utilizado en el actual proyecto que no son compatibles con la nueva versión de ASF 5.2, esto provoca que al solicita obtener la lista de CA válidas por el Gobierno de Canarias no sea posible. Servicio de soporte para la Plataforma de Interoperabilidad de la Administración Pública de la Comunidad Autónoma de Canarias PLATINO (OTP) Página 5 de 7 20121004 - Informe para obtener lista de CA para ASF 5.2_2.odt.pdf 3 SOLUCIÓN Para dar solución a este error que se puede producir y también evitando el acceso de las páginas que se van a presentar al cliente que tenga que acceder al servicio de firma para descargar la lista de CA válidas, se ha creado un fichero javascript (CAValidas.js) que contiene una función que devuelve el array de CA válidas y el array de restricciones, el cual será actualizado cuando se asocie una nueva CA válida para el Gobierno de Canarias. Para ello se ha creado un nuevo proyecto con las modificación y que pueda servir de plantilla para la integración PlatinoWebSignerTestNewVersion.war.zip2 3.1 Actualizaciones realizadas PlatinoWebSignatureTest.war sobre el proyecto En el proyecto con la versión anterior, dentro del directorio WEB-INF hay dos directorios: ••• \WEB-INF\lib: Este directorio podrá ser eliminado al no necesitar utilizar ninguna de las librerías para conectarse al servicio de firma. ••• \WEB-INF\class: Este directorio deberá ser actualizado con la mismas carpeta ubicada en el nuevo proyecto. En las páginas en las que se utiliza el componente WebSigner para la firma en cliente, se han realizado cambios en la forma de obtener el listado de CA válidas y las restricciones sobre estas CA. Para ello se utiliza una página Javascript que posee un array y se reemplaza el código que había antes. Para la obtención de la url desde la que se descargará las CA´s válidas creamos el código jsp: 2 http://www.gobiernodecanarias.org/platino/docs/PlatinoWebSignerTestNewVersion.war.zip Servicio de soporte para la Plataforma de Interoperabilidad de la Administración Pública de la Comunidad Autónoma de Canarias PLATINO (OTP) 20121004 - Informe para obtener lista de CA para ASF 5.2_2.odt.pdf Página 6 de 7 <% /* * URL base del servicio de firma de Platino. */ String gsURL = PlatinoWebSigner.getSFEST_URL(); /* * URL base de platino. */ String platinoURL = PlatinoWebSigner.getPLATINO_URL(); %> Para que este método funcione es necesaria una nueva propiedad en el fichero platinoWebSigner.properties: # URL base de platino. Segun entorno y finalidad puede ser: # produccion: https://www.gobiernodecanarias.org/platino/ # pre-produccion: http://www-pre.gobiernodecanarias.org/platino/ # sede: https://sede.gobcan.es/platino/ es.gobcan.platino.platinoURL = http://www-pre.gobiernodecanarias.org/platino/ Una vez conocemos las URL base, podemos incluir los javascript necesarios en nuestro código fuente: <script language="javascript" src="<%=platinoURL%>js/CAValidas.js" type="text/javascript"></script> <script language="javascript" src="<%=gsURL%>js/WS_Full.js" type="text/javascript"></script> <script language="javascript" src="<%=gsURL%>js/sfest.utils.js" type="text/javascript" charset="iso-8859-1"></script> <script language="javascript" src="<%=gsURL%>js/sfest.base.js" type="text/javascript" charset="iso-8859-1"></script> En las páginas donde se utiliza el componente de firma deben variar el código para que obtengan el listado de CA válidas, antes estaba el código: Servicio de soporte para la Plataforma de Interoperabilidad de la Administración Pública de la Comunidad Autónoma de Canarias PLATINO (OTP) 20121004 - Informe para obtener lista de CA para ASF 5.2_2.odt.pdf Página 7 de 7 function actualizarCertificadosValidos() { arrCAs = new Array(<%=trustedCAs%>); arrRestrictions = new Array(<%=restrictions%>); arrValidCertificates = getTrustedCertificates ('<%=applicationId%>', '<%=operationId%>', '<%=applicationId%>'); for (var i = 0; i < arrValidCertificates.length; i++) { if (arrValidCertificates[i]!=null) if (arrValidCertificates[i]!="") { document.formData.validCertificates.options[i] = new Option(arrValidCertificates[i][1],arrValidCertificates[i][0]); } } document.formData.validCertificates.options.lenght=arrValidCertificates.length; actualizaInfo(); } En nuevo código debería tener: function actualizarCertificadosValidos() { arrCAs = getArrayCAs(); arrRestrictions = getArrayRestrictions(); arrValidCertificates = getTrustedCertificates ('<%=applicationId%>', '<%=operationId%>', '<%=applicationId%>'); for (var i = 0; i < arrValidCertificates.length; i++) { if (arrValidCertificates[i]!=null) if (arrValidCertificates[i]!="") { document.formData.validCertificates.options[i] = new Option(arrValidCertificates[i][1],arrValidCertificates[i][0]); } } document.formData.validCertificates.options.lenght=arrValidCertificates.length; actualizaInfo(); } Servicio de soporte para la Plataforma de Interoperabilidad de la Administración Pública de la Comunidad Autónoma de Canarias PLATINO (OTP)