vrk-kpa / xroad-joint-development

Unmaintained repository. Development moved to: https://github.com/nordic-institute/X-Road-development
19 stars 8 forks source link

As a Product Owner I want that the SOAP fault message is not modified by the Security Server so that the original message structure remains immutable #115

Closed hanhaka closed 7 years ago

hanhaka commented 7 years ago

Affected components: Proxy Affected documentation: - Estimated delivery: Q1/2017 External reference: https://jira.csc.fi/browse/PVAYLADEV-502

Problem

It has been notified that the Security Server does not pass the original SOAP fault message using the same original message structure as returned from customer's information system. For exmaple, as the Security Server processes the SOAP fault message, it removes

element data and concatenates all element data to one single string which loses the original structure and makes the client side processing of SOAP message hard.

For example the following Standard SOAP error message:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header> 
        Header content 
    </s:Header> 
   <s:Body> 
      <s:Fault> 
         <faultcode>s:BISCQ100</faultcode> 
         <faultstring xml:lang="en">Company not found.</faultstring> 
         <detail> 
            <BusinessIdFault xmlns="http://bis/dataservices/companyquery/v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
               <Errors> 
                  <BusinessIdError> 
                     <BusinessId>123456-A</BusinessId> 
                     <Descriptions> 
                        <ErrorDescription> 
                           <Language>fi</Language> 
                           <Description>Yritystä ei löydy</Description> 
                        </ErrorDescription> 
                        <ErrorDescription> 
                           <Language>sv</Language> 
                           <Description>Företaget hittas inte</Description> 
                        </ErrorDescription> 
                        <ErrorDescription> 
                          <Language>en</Language> 
                           <Description>Company not found</Description> 
                        </ErrorDescription> 
                     </Descriptions> 
                  </BusinessIdError> 
               </Errors> 
            </BusinessIdFault> 
         </detail> 
      </s:Fault> 
   </s:Body> 
</s:Envelope> 

... is modified by the Security Server to follow the below format:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xroad="http://x-road.eu/xsd/xroad.xsd"> 
   <SOAP-ENV:Body> 
      <SOAP-ENV:Fault> 
         <faultcode>SOAP-ENV:BISCQ100</faultcode> 
         <faultstring>Company not found.</faultstring> 
         <detail> 
            <xroad:faultDetail>123456-AfiYritystä ei löydy.svFöretaget hittas inte.enCompany not found.</xroad:faultDetail> 
         </detail> 
      </SOAP-ENV:Fault> 
   </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Acceptance criteria

  • Security Server does not modify the original standard SOAP fault message but passes it through as-is
hanhaka commented 7 years ago

Agreed on 6th of February, 2017 that the work can be started.

hanhaka commented 7 years ago

Fixed in version 6.11.0