Introduktion

 Formål med dokumentet

Formålet med dette dokument er at give en detaljeret beskrivelse af dem konkrete funktionalitet, der udbydes af Seal.Java anvendelsesområdet Service Consumer.

Læsevejledning

Dokumentet henvender sig primært til udviklere, der skal i gang med at anvende Seal.Java som Service Consumer.

Dokumentet bygger i høj grad på den overordnede Seal.Java - Guide til udviklere, som giver et overblik over Seal.Java og leverer i denne sammenhæng et mere dybdegående teknisk beskrivelse af den funktionalitet der udbydes i Seal.Java når den anvendes af en Service Consumer.


Overblik over funktionalitet

Der findes følgende funktionalitet når Seal.Java anvendes som Service Consumer:

Arbejdsnavn (kolonne slettes inden QA)

eHDSI 

DGWS system-id-kort classic



Eksempler på requests

eHDSI

Eksempel på opbygning af kald til STS:

// Use Seal.Java EHDSIFactory
EHDSIFactory factory = new EHDSIFactory();

// Build Dkncp Boostrap SAML Assertion
DkncpBootstrapSamlAssertionBuilder dkncpBootstrapSamlAssertionBuilder = factory.createDkncpBootstrapSamlAssertionBuilder(vault, issuer);

dkncpBootstrapSamlAssertionBuilder.setIssuer("http://sosi");
dkncpBootstrapSamlAssertionBuilder.setAudienceRestriction("https://fmk");
Date now = new Date();
dkncpBootstrapSamlAssertionBuilder.setNotBefore(new Date(now.getTime() - 1000));
dkncpBootstrapSamlAssertionBuilder.setNotOnOrAfter(new Date(now.getTime() + 5 * 60 * 1000));
dkncpBootstrapSamlAssertionBuilder.setSubjectName("C=DK,O=LAKESIDE A/S // CVR:25450442,CN=Sårjournal TEST læge,Serial=CVR:25450442-RID:73570260");
dkncpBootstrapSamlAssertionBuilder.setSubjectNameID("nameid");
dkncpBootstrapSamlAssertionBuilder.setSubjectNameIDFormat(SAMLValues.NAMEID_FORMAT_X509_SUBJECT_NAME);
dkncpBootstrapSamlAssertionBuilder.setDeliveryNotOnOrAfter(new Date(now.getTime() + 10 * 1000));
dkncpBootstrapSamlAssertionBuilder.setSigningVault(vault);
dkncpBootstrapSamlAssertionBuilder.setHolderOfKeyCertificate(holderOfKeyVault.getSystemCredentialPair().getCertificate());

// Set values for SAML attributes
dkncpBootstrapSamlAssertionBuilder.setSubject("Alfonso Gonzalez");
.
.
.

// Sign and validate Dkncp Bootstrap token
DkncpBootstrapSamlAssertion dkncpBootstrapSamlAssertion = dkncpBootstrapSamlAssertionBuilder.build();
dkncpBootstrapSamlAssertion.validateSchema();
dkncpBootstrapSamlAssertion.validateSignatureAndTrust(vault);

// Build Dkncp Bootstrap request
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder requestDomBuilder = factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder();
requestDomBuilder.setAudience("https://sosi");
requestDomBuilder.setSigningVault(holderOfKeyVault);
requestDomBuilder.setDkncpBootstrapToken(dkncpBootstrapSamlAssertion);

// Build and sign the final response
requestDomBuilder.build()

Eksempel på fortolkning af svar fra STS: