У меня есть особая проблема при вызове веб-службы, которая ожидает подписания сообщения с использованием WS-Security.Если я звоню, используя свое клиентское приложение (используя Apache CXF), я получаю сообщение об ошибке HTTP 500:
* Сертификат не найден * (от клиента)
, если яВызовите тот же сервис, используя SoapUI, настроенный для подписи тем же ключом и хранилищем ключей, он работает как положено.
Я заметил, что часть вызова <KeyInfo>
отличается между CXF и SoapUI.С CXF (как показано ниже) KeyInfo намного более детально описан с разделами <X509Data>
и т. Д., В то время как вызов SoapUI содержит просто <SecurityTokenReference>
.Я подозреваю, что это различие может быть причиной того, что сервер не может идентифицировать сертификат, используемый для подписи.
К сожалению, я не контролирую серверную сторону, поэтому не могу провести там много исследований.Было бы неплохо узнать, если это известная проблема и есть ли обходные пути?
С уважением, Ола
CXF:
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="KeyId-1007572087">
<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-1355509614"><ds:X509Data xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509IssuerSerial xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509IssuerName xmlns:ds="http://www.w3.org/2000/09/xmldsig#">C=SE,O=Company,CN=Company Test Corporate CA 01,SERIALNUMBER=516406-0120</ds:X509IssuerName>
<ds:X509SerialNumber xmlns:ds="http://www.w3.org/2000/09/xmldsig#">29382</ds:X509SerialNumber>
</ds:X509IssuerSerial></ds:X509Data></wsse:SecurityTokenReference></ds:KeyInfo>
SoapUI:
<ds:KeyInfo Id="KeyId-850CCDA383426C4A1E129683271974138"><wsse:SecurityTokenReference wsu:Id="STRId-850CCDA383426C4A1E129683271974139" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:Reference URI="#CertId-850CCDA383426C4A1E129683271974137" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1"/></wsse:SecurityTokenReference></ds:KeyInfo>