Pregunta

Tengo un cliente de SOAP y también un servidor de SOAP utilizando CXF.Tengo un mensaje firmando funcionando correctamente.Cuando apunte a mi cliente de SOAP en un servidor SOAP diferente utilizando un dispositivo SOAP de IBM, los mensajes de respuesta contienen el elemento SignatureConFirmation.Quiero asegurarme de que mi servidor SOAP basado en CXF dé los mismos resultados que los servidores de jabón de terceros, entonces, ¿cómo configuro mi servidor para habilitar ese elemento?

Aquí es cómo configuré mi servidor:

signingProps.put(WSHandlerConstants.ACTION, "Timestamp Signature"); 
signingProps.put(WSHandlerConstants.SIGNATURE_PARTS, "{}{http://schemas.xmlsoap.org/soap/envelope/}Body ;" 
      + "{}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}" 
      + "Timestamp"); 
signingProps.put(WSHandlerConstants.SIG_KEY_ID, "IssuerSerial"); 

Properties keyStoreProps = new Properties(); 
keyStoreProps.put(LocalCryptoProvider.WS_CRYPTO_PROVIDER, 
    LocalCryptoProvider.class.getName()); 
keyStoreProps.put(LocalCryptoProvider.KEYSTORE_OBJECT, keyStore); 

WSS4JOutInterceptor outSigner = new WSS4JOutInterceptor(signingProps); 
cxfFactory.getOutInterceptors().add(new SAAJOutInterceptor()); 
cxfFactory.getOutInterceptors().add(outSigner); 

¿Fue útil?

Solución 2

Encontré la respuesta correcta.

En el mapa de propiedades pasadas al WSS4JoutIrderceptor y WSS4JINIRNERCEPTOR AÑADIR habilitable_signature_confirmation, i.e.

signingProps.put(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, "true" );

Esto debe configurarse tanto en el cliente como en el servidor o no funcionará.Además, si habilita la confirmación de la firma en el cliente, pero no en el servidor, entonces el cliente lanzará una excepción.

Otros consejos

La acción debe ser "EnableSignaturEconFirmation" que se encargue de agregar el elemento de confirmación de la firma a la respuesta.

signingProps.put(WSHandlerConstants.ACTION, "enableSignatureConfirmation");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top