Page History
...
Der findes et komplet eksempel (incl. STS omveksling) sidst på siden.
Eksempel
DGWS ID kort
...
Læs medarbejder DGWS ID kort fra anvender
Et medarbeder DGWS ID kort der stammer fra en anvender kan Seal.Java parse til et IDCard objekt på følgende måde:
...
Hvor det modtagne request er indlæst i variablen request og er af typen SecurityTokenRequest.
...
Opbyg DGWS ID kort
Seal.Java kan anvendes til at opbygge et medarbejder DGWS ID kort. Dette vil typisk ske i forbindelse med test.
...
Det er nu muligt at se indholdet af requestet
STS Response
Når consumeren modtager svaret fra STS, så skal det først indlæses i et W3C Document:
| Code Block |
|---|
// Konverter XML svaret fra STS til Document
Document consumerStsResponseDocument = XmlUtil.readXml(new java.util.Properties(), consumerStsResponseXml, false); |
Man kan nu deserialisere svaret til et IDCardToOIOSAMLAssertionResponse modelobjekt:
| Code Block |
|---|
// Deserialiser STS svaret til modelobjekt
IDCardToOIOSAMLAssertionResponse consumerStsResponse = factory.createIDCardToOIOSAMLAssertionResponseModelBuilder().build(consumerStsResponseDocument); |
Her efter kan man hente OIO Saml sikkerhedsbilletten ud, dekryptere den og verificere attributterne:
| Code Block |
|---|
// Hent OIO Saml Assertion og dekrypter den:
Element encryptedElement = consumerStsResponse.getEncryptedOIOSAMLAssertionElement();
Element element = EncryptionUtil.decryptAndDetach(encryptedElement, signingVault.getSystemCredentialPair().getPrivateKey());
// Verificer at det er en OIO Saml Assertion samt at værdierne for de to attributter AuthenticationLevel og Alternative Identifier er som forventet:
OIOSAMLAssertion assertionResponse = new OIOSAMLAssertion(element);
Assert.assertEquals("DK-SAML-2.0", assertionResponse.getSpecVersion());
Assert.assertEquals("3", assertionResponse.getAssuranceLevel());
Assert.assertEquals("http://audience.nspoop.dk/dds", assertionResponse.getAudienceRestriction()); |
Service Request
Service Response
...