I det følgende beskrives hvad en service provider skal gøre følgende når der modtages et IDWS request. 

Der vil også være kodeeksempler der vise hvordan det skal gøres i praksis.


Først skal der laves en instans af den factory der kan håndtere IDWS. Den skal oprettes med den Federation man ønsker at anvende (Test eller Prod) og i dette eksmpel benyttes Test:

// Opret instans af den ønskede Federation
SOSITestFederation sosiTestFederation = new SOSITestFederation(new Properties());

// Opret ny instans af factory der kan håndtere IDWS:
OIOIDWSFactory factory = new OIOIDWSFactory(sosiTestFederation, null);

Bemærk: Den andet argument til OIOIDWSFactory er "null". Det er den CredentialVault der ønskes anvendt og hvis man sætter den til "null", så anvendes CredentialVault fra STS.

Hvis man modtager det indkomne request som en Stream, så kan man benytte Seal til at validere det og hente Identity Token ud, som man så kan arbejde videre med og benytte informationerne i servicen:

// Deserialisering af den indkomne "inputStream" til et Document
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
Document document = documentBuilderFactory.newDocumentBuilder().parse(inputStream);

// I forbindelse med deserialisering til LibertyRequest bliver det både signatur og gyldighed valideret 
LibertyRequest request = factory.createRequest(document);

// Nu har man et IdentityToken man kan arbejde videre med informationerne f.eks.cpr nummer
CitizenIdentityToken identityToken = request.getIdentityToken();
String cpr = identityToken.getCpr();


  • No labels