PERMISO Y EXENCIÓN DE RESPONSABILIDAD En este sitio web aparecen programas que pueden ser descargados. Estos programas están sujetos a derechos de reproducción y su dueño reclama derecho exclusivo sobre estos programas. El propietario de los programas que usted se descarga en este sitio web puede aparecer indicado en los ficheros READ-ME o dentro del código fuente. Por esta nota se permite el uso, copia, modificación y distribución de estos programas y su código fuente para uso no comercial y sin pago alguno, siempre que el dueño de los derechos u otras personas que contribuyan no se usen con fines publicitarios sin un previo permiso por escrito. El dueño de los derechos y las personas que han contribuido no garantizan que estos programas sean apropiados para uso alguno. Estos programas se distribuyen "tal cual" sin garantía explícita o implícita, incluyendo sin limitación las garantías implícitas de comerciabilidad y adecuación a un uso especifico. En ningún caso, el autor y los que han contribuido a estos programas, serán responsables de ningún daño directo, indirecto, incidental, especial, punitivo o consecuente causados por los programas (incluyendo sin limitación la pérdida de uso, datos, ganancias o interrupción de negocios) sea cual fuera su causa y bajo cualquier teoría de responsabilidad. AcceptCancel
Este ejemplo tiene como objetivo validar el estado de un certificado mediante el servicio de validación de TrustedX. A continuación se describen los pasos a seguir para crear una petición de validación usando Axis.
Para poder probar este ejemplo se debe descargar el archivo sampleAxis1.zip y seguir las instrucciones que se encuentran en Configuración del entorno. El archivo descargado contiene el código de ejemplo y los archivos necesarios, en este caso el certificado a validar.
En primer lugar en el ejemplo se definen las constantes necesarias. Las constantes que se deben definir para el ejemplo incluyen el lugar dónde se encuentra el certificado a validar, los parámetros de autenticación y la dirección dónde se encuentra la plataforma TrustedX a la que se invocaran los servicios. Además se incluyen aquellos parametros relativos a las urn que identifican el perfil del tipo de verificación y que se trata de un certificado.
private static final String path_in = "data/input/";
private static final String filename = "dave.crt";
private static final String host = "https://labs.safelayer.com/demo/services/SignatureVerify";
private static final String PROF_CERT_STATUS = "urn:safelayer:tws:dss:1.0:profiles:certstatus:1.0:verify";
private static final String PROF_CERT_TYPE = "urn:safelayer:tws:dss:1.0:profiles:names:certificate";
private static final String user = "dave";
private static final String password = "trustedx";
A continuación se debe inicializar la conexión con el servicio web de verificación de firmas, indicando dónde se encuentran dichos servicios, es decir, la dirección de TrustedX que se va a utilizar. También es necesario configurar los parámetros de SSL.
TWSDSVLocator locatorDsv = new TWSDSVLocator();
locatorDsv.setSignatureVerifyEndpointAddress(host);
SignatureVerificationType svt = locatorDsv.getSignatureVerify();
DSVBindingStub bindingDsv = (DSVBindingStub) svt;
UtilTrustedX.ssl_conf();
Una vez inicializada la conexión se crea la petición de verificación con un objeto de tipo VerifyRequest. Es necesario incluir las credenciales de autenticación, en este caso mediante nombre de usuario y contraseña en claro. En todos los ejemplos se utiliza está forma de autenticación. La función addUsernameToken() añade los parámetros de autenticación en la cabecera SOAP de la petición. También debe definir el perfil que se va a usar dentro del servicio de validación de TrustedX, en este caso certstatus.
VerifyRequest vr = new VerifyRequest();
vr.setProfile(new URI(PROF_CERT_STATUS));
UtilTrustedX.addUsernameToken(bindingDsv, user, password);
Finalmente se añaden los datos del certificado a validar en Base64, indicando que se trata de un certificado firmado. Para ello se crea un objeto SignatureObject, que contendrá un objeto Base64Signature con el certificado, y que se incluye dentro de la petición.
SignatureObject sobj = new SignatureObject();
Base64Signature b64sig = new Base64Signature();
b64sig.setType(new URI(PROF_CERT_TYPE));
b64sig.set_value(Util.readBinaryFile(path_in + filename));
sobj.setBase64Signature(b64sig);
vr.setSignatureObject(sobj);
Una vez se han introducido todos los datos en la petición se invoca el método verify() que envía la petición de verificación al host y recoge la respuesta en un objeto VerifyResponse.
VerifyResponse vrs = bindingDsv.verify(vr);
Falta ver que sale como respuesta, ahora sale el SOAP response.
** RESPONSE **
Major: urn:oasis:names:tc:dss:1.0:resultmajor:Success
Minor: urn:oasis:names:tc:dss:1.0:resultminor:ValidSignature_OnAllDocuments
DN: CN=Dave, OU=Demo, O=TrustedX, C=ES
Issuer Trust Level: 0
Issuer Trust Label: Administration
|