У меня есть мыльный клиент, а также мыльный сервер, использующий CXF. У меня правильно работает подпись сообщений. Когда я указываю своему мыльному клиенту другой сервер SOAP с помощью устройства IBM SOAP, ответные сообщения содержат элемент SignatureConfirmation. Я хочу убедиться, что мой SOAP-сервер на основе CXF дает те же результаты, что и сторонние SOAP-серверы, так как мне настроить свой сервер для включения этого элемента?
Вот как я настроил свой сервер:
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);