私は石鹸クライアントと石鹸サーバーの両方をCXFを使用しています。メッセージ署名が正しく機能しています。IBM SOAPアプライアンスを使用してsoapクライアントを別のSOAPサーバーに向けると、応答メッセージに要素SignatureConfirmationが含まれます。CXFベースのSOAPサーバーがサードパーティの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);