Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Kort introduktion til service
NSP Test Service (NTS) bruges til at verificere korrektheden af et DGWS 1.0.1 SOAP-request.

NTS validerer det DGWS-specifikke information i SOAP-headeren for det SOAP-request, som sendes til den. Indholdet i SOAPbody er udenfor valideringen. Der udføres kontrol på følgende:

  • UTF-8 character encoding for requestet
  • valid XML i requestet
  • SOAP 1.1 namespace i requestet
  • SOAP envelope og body har indhold
  • eksistens af obligatoriske DGWS header-elementer
  • korrekt orden på DGWS header-elementer
  • overholdelse af ID-kort indhold, som specificeret i DGWS 1.0 specifikationen bilag 2 og 4
  • certifikatoplysninger, herunder:
    • certifikatets gyldighed
    • korrekt signatur (ikke-self signed)
    • udstedt af kendt STS
  • ID-kortet i requestet validerer med SEAL-biblioteket
  • ID-kortet er formatteret korrekt mht. tabs, linebreaks og white spaces (ved pretty printing)

 

Ved henvendelser fra anvendere, hvor der, for anvendere, opleves problemer med at kalde en service på NSP kan NTS bringes i anvendelse, som et værktøj til at hjælpe anvenderen videre. Dette gøres i praksis ved, at anvenderes request sendes til NTS istedet for til den oprindelige service. NTS afleverer et svar der uddyber, hvad der måtte være forkert i requestet. Svaret kan enten bruges direkte af supportfunktionen i dialogen med anvender eller som yderligere information videre i supportkæden. I sidstnævnte tilfælde skal NTS svaret indsættes i supportsagen.

 

Komponent og versioner

NTS er tilgængelig på URL’en: http://<host>/nts/service, hvor <host> erstattes med konkrete miljø, f.eks.:test2.ekstern-test.nspop.dk:8080.

Tilsvarende er WSDL for servicen tilgængelig på http://<host>/nts/service?wsdl 

NTS kan kaldes som enhver anden WebService på den nævnte eller tilsvarende URL. Det kan i praksis foregå med det værktøj anvender finder belejligt, eksempelvis curl, SOAP-UI eller egen kode. DGWS SOAP-requestet skal indeholde, hvad anvender ellers ville sende til enhver anden service på NSP. I svaret fra NTS vil resultatet af valideringen af DGWS SOAP-requestet fremgåi SOAP-body på response.

 

Kontaktoplysninger, servicebeskrivelse og testforhold

Et eksempel på kald til NTS med brug af curl, hvor SOAP-body i DGWS SOAP-requestet er tom:

Code Block
themeConfluence
languagenone
curl --header ’Content-Type: application/soap+xml; charset=utf-8’ -d @modules/web/src/test/-
	java/dk/nsi/nsp/nts/web/checks/testxml/idcard-valid.xml http://test2.ekstern-test.nspop. 
	dk:8080/nts/service | xmllint --format -

hvilket giver følgende resultat:

Code Block
themeConfluence
languagenone
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header>
      <Header xmlns="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
         <Linking>
            <FlowID>9489</FlowID>
            <MessageID>9489:10173889505080905</MessageID>
         </Linking>
         <FlowStatus>syntax_error</FlowStatus>
      </Header>
      <NTS xmlns="http://nspop.dk/nts/2013/05">
         <Environment>TEST</Environment>
         <NTS-Version>1.0.0</NTS-Version>
         <SEAL-Version>2.1.6</SEAL-Version>
      </NTS>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>Server</faultcode>
         <faultstring>Consult detailed errors in medcom:FaultCode</faultstring>
         <detail xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
            <medcom:FaultCode>ERROR [SOAP1.1]: SOAP element: ’Body’ is empty. (&lt;S:Body xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"/>)</medcom:FaultCode>
         </detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Værd at bemærke er følgende header-element:

Code Block
themeConfluence
languagenone
<NTS xmlns="http://nspop.dk/nts/2013/05">
   <Environment>TEST</Environment>
   <NTS-Version>1.0.0</NTS-Version>
   <SEAL-Version>2.1.6</SEAL-Version>
</NTS>

Det kan her ses, at <Environment>-elementet angiver, hvilken miljø-type NTS befinder sig på. Mulighederne er TEST eller PRODUCTION. Endvidere kan det bemærkes at NTS benytter sig af SEAL version 2.1.6, som det ses i tagget <SEAL-Version>,  og er selv version 1.0.0, som det ses i tagget <NTS-Version>.

Resultatet af valideringen ses i responsets SOAP-body, som værdi for et eller flere <medcom:FaultCode>-tags. 

 

Fejl er opdelt i kategorier, som vedrører bestemte tekniske områder i DGWS SOAP-requestet, eksempelvis:

  • [XML]: vedrører fejl ifbm. brug af XML generelt
  • [SOAP1.1]: vedrører fejl ifbm. anvendelsen af SOAP 1.1 
  • [STS Signed]: vedrører fejl ifbm. anvendelsen af STS eller SEAL-biblioteket NTS Anvender-guide 3 / 3
  • [DGWS Schema]: vedrører fejl ifbm. strukturen af ID-kortet elementer
  • [DGWS IDCard]: vedrører fejl ifbm. indhold af ID-kortet 

Et eksempel på et resultat, hvor der optræder flere samtidige fejlbeskeder:

Code Block
themeConfluence
languagenone
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header>
      <Header xmlns="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
         <Linking>
            <FlowID>urn:uuid:fe6eb0b0-d95f-414e-b6a5-f343503bc103</FlowID>
            <MessageID>A998:10179430363102375</MessageID>
            <InResponseToMessageID>AAABPqK6kjpf6XN9a05H4lNPU0k=</InResponseToMessageID>
         </Linking>
         <FlowStatus>syntax_error</FlowStatus>
      </Header>
      <NTS xmlns="http://nspop.dk/nts/2013/05">
         <Environment>TEST</Environment>
         <NTS-Version>1.0.0</NTS-Version>
         <SEAL-Version>2.1.6</SEAL-Version>
      </NTS>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>Server</faultcode>
         <faultstring>Consult detailed errors in medcom:FaultCode</faultstring>
         <detail xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
            <medcom:FaultCode>ERROR [DGWS IDCard]: IDCard Conditions NotOnOrAfter exceeded (&lt;ns9:Conditions xmlns:ns9="urn:oasis:names:tc:SAML:2.0:assertion" NotBefore="  -
2013-05-14T11:03:56Z" NotOnOrAfter="2013-05-15T11:03:56Z"/>). Server time:2013-07-15T16:47:00.751</medcom:FaultCode>
            <medcom:FaultCode>ERROR [STS Signed]: SEAL (Test Federation): Invalid signature: ’dk.sosi.seal.modelbuilders.SignatureInvalidModelBuildException: Signature could  -
not be validated’</medcom:FaultCode>
            <medcom:FaultCode>ERROR [STS Signed]: IDCard contains more than 4 spaces in a row. This indicates that the IDCard XML has been pretty printed</medcom:FaultCode>
         </detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

  

Her ses, at der er problemer med ID-kortets gyldighed:

Info
iconfalse
ERROR [DGWS IDCard]: IDCard Conditions NotOnOrAfter exceeded

og signaturen på ID-kortet kan ikke valideres: 

Info
iconfalse
ERROR [STS Signed]: SEAL (Test Federation): Invalid signature

 og der er problemer med formateringen af XML’en i ID-kortet:

Info
iconfalse
ERROR [STS Signed]: IDCard contains more than 4 spaces in a row

 

Der findes en mængde andre fejlbeskeder, som ligger udenfor dette dokument at give eksempel på.

...