Hi,

Could you put together a test-case that reproduces the problem that we can run?

Colm.

On Tue, Jan 18, 2022 at 12:46 AM Yeikel Valdes Santana
<yeikel.valdessant...@aexp.com.invalid> wrote:
>
> I am  trying to generate a SOAP request using Apache CXF WS-Security similar 
> to the following request(I generated it using SoapUI) :
>
>     <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>         <soapenv:Header>
>             <wsse:Security 
> 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";>
>                 <ds:Signature Id="SIG-xxx" 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
>                     <ds:SignedInfo>
>                         <ds:CanonicalizationMethod 
> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";>
>                             <ec:InclusiveNamespaces PrefixList="soapenv"
>                                                     
> xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
>                         </ds:CanonicalizationMethod>
>                         <ds:SignatureMethod 
> Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
>                         <ds:Reference URI="#xxxx">
>                             <ds:Transforms>
>                                 <ds:Transform 
> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";>
>                                     <ec:InclusiveNamespaces PrefixList=""
>                                                             
> xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
>                                 </ds:Transform>
>                             </ds:Transforms>
>                             <ds:DigestMethod 
> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
>                             <ds:DigestValue>xxxx</ds:DigestValue>
>                         </ds:Reference>
>                     </ds:SignedInfo>
>                     <ds:SignatureValue>xxxx
>                     </ds:SignatureValue>
>                     <ds:KeyInfo Id="xxxxx">
>                         <wsse:SecurityTokenReference wsu:Id="xxxxx">
>                             <wsse:KeyIdentifier
>                                     
> EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary";
>                                     
> ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3";>
>                         xxxx
>                             </wsse:KeyIdentifier>
>                         </wsse:SecurityTokenReference>
>                     </ds:KeyInfo>
>                 </ds:Signature>
>             </wsse:Security>
>
>         </soapenv:Header>
>         <soapenv:Body wsu:Id="id-xxx"
>                       
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";>
>             <v3:AccountRequest
>                     xmlns:v3="http://services.mysiste.com/V3";>
>                 <Request>
>                     <SearchParametersBlock>
>                         <MktCd>
>                             <MktCdData>
>                                 <MktCd>US</MktCd>
>                             </MktCdData>
>                         </MktCd>
>                     </SearchParametersBlock>
>                 </Request>
>             </v3:AccountRequest>
>         </soapenv:Body>
>     </soapenv:Envelope>
>
>
> I am using the following code to generate my Java request :
>
>
>      Properties signatureProperties = new Properties();
>             signatureProperties.put("org.apache.ws.security.crypto.provider",
>         "org.apache.ws.security.components.crypto.Merlin");
>             
> signatureProperties.put("org.apache.ws.security.crypto.merlin.keystore.type",
>       "jks");
>             
> signatureProperties.put("org.apache.ws.security.crypto.merlin.keystore.file",
>        "server.jks");
>             
> signatureProperties.put("org.apache.ws.security.crypto.merlin.keystore.password",
>         "password");
>             
> signatureProperties.put("org.apache.ws.security.crypto.merlin.keystore.alias",
>        "myAlias");
>
>     
> signatureProperties.put("org.apache.ws.security.crypto.merlin.keystore.private.password",
>  "password");
>
>             Map<String,Object> outProps = new HashMap<>();
>             outProps.put(WSHandlerConstants.USER, "myAlias");
>             outProps.put(WSHandlerConstants.SIG_KEY_ID, "X509KeyIdentifier");
>             outProps.put(WSHandlerConstants.ACTION, 
> WSHandlerConstants.SIGNATURE);
>
>             outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, 
> ServiceKeystorePasswordCallback.class.getName());
>             outProps.put(WSHandlerConstants.SIG_ALGO, 
> "http://www.w3.org/2000/09/xmldsig#sha1";);
>             outProps.put(WSHandlerConstants.SIG_C14N_ALGO, 
> "http://www.w3.org/2001/10/xml-exc-c14n#";);
>             outProps.put(WSHandlerConstants.SIG_PROP_REF_ID, 
> "signatureProperties");
>             outProps.put("signatureProperties", signatureProperties);
>
>
>             org.apache.cxf.endpoint.Client client = 
> ClientProxy.getClient(this.service);
>             org.apache.cxf.endpoint.Endpoint cxfEndpoint = 
> client.getEndpoint();
>
>             WSS4JInInterceptor wssIn = new WSS4JInInterceptor(outProps);
>             cxfEndpoint.getOutInterceptors().add(wssIn);
>
> But I am experiencing the following error : "Security processing failed 
> (actions mismatch)"
>
> I traced the exception and it boils down to the following snippet
>
>
>      if (!checkReceiverResultsAnyOrder(wsResult, actions)) {
>                 LOG.warning("Security processing failed (actions mismatch)");
>                 throw new 
> WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY);
>             }
>
> Where actions != wsResult(it is empty)
>
> I am not sure how to populate wsResult in this case. Any help would be 
> greatly appreciated
>
>
>
> American Express made the following annotations
>
> "This message and any attachments are solely for the intended recipient and 
> may contain confidential or privileged information. If you are not the 
> intended recipient, any disclosure, copying, use, or distribution of the 
> information included in this message and any attachments is prohibited. If 
> you have received this communication in error, please notify us by reply 
> e-mail and immediately and permanently delete this message and any 
> attachments. Thank you."
> American Express a ajouté le commentaire suivant
> Ce courrier et toute pièce jointe qu'il contient sont réservés au seul 
> destinataire indiqué et peuvent contenir des renseignements confidentiels et 
> privilégiés. Si vous n'êtes pas le destinataire prévu, toute divulgation, 
> duplication, utilisation ou distribution du courrier ou de toute pièce jointe 
> est interdite. Si vous avez reçu cette communication par erreur, veuillez 
> nous en aviser par courrier et détruire immédiatement le courrier et les 
> pièces jointes. Merci.
>

Reply via email to