Formålet med dette dokument er at give en detaljeret beskrivelse af dem konkrete funktionalitet, der udbydes af Seal.Java anvendelsesområdet Service Consumer.
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.
Der findes følgende funktionalitet når Seal.Java anvendes som Service Consumer:
| Arbejdsnavn (kolonne slettes inden QA) | ||
|---|---|---|
| eHDSI | ||
| DGWS system-id-kort classic |
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: