Page History
...
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:
| Code Block |
|---|
// Use Seal.Java EHDSIFactory-------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- EHDSIFactory factory = new EHDSIFactory(); // -------------------------------------------------------------------- // 2. Build SAML Assertion // -------------------------------------------------------------------- // Build Dkncp Boostrap SAML Assertion DkncpBootstrapSamlAssertionBuilder dkncpBootstrapSamlAssertionBuilder assertionBuilder= factory.createDkncpBootstrapSamlAssertionBuilder(vault, issuer); dkncpBootstrapSamlAssertionBuilder// Set values for the SAML Assertion assertionBuilder.setIssuer("http://sosi"); dkncpBootstrapSamlAssertionBuilderassertionBuilder.setAudienceRestriction("https://fmk"); Date now = new Date. . // Sign and validate Dkncp Bootstrap SAML Assertion DkncpBootstrapSamlAssertion assertion = assertionBuilder.build(); dkncpBootstrapSamlAssertionBuilderassertion.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:
validateSchema();
assertion.validateSignatureAndTrust(vault);
// --------------------------------------------------------------------
// 3. Build STS request
// --------------------------------------------------------------------
// Build Dkncp Bootstrap request
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder requestBuilder = factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder();
requestBuilder.setAudience("https://sosi");
requestBuilder.setSigningVault(holderOfKeyVault);
requestBuilder.setDkncpBootstrapToken(assertion);
// Build and sign the final STS request
requestBuilder.build() |
Eksempel på fortolkning af svar fra STS:
| Code Block |
|---|
// --------------------------------------------------------------------
// 1. Factory
// --------------------------------------------------------------------
EHDSIFactory factory = new EHDSIFactory();
// --------------------------------------------------------------------
// 2. Parse STS response
// --------------------------------------------------------------------
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseModelBuilder responseBuilder =
factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseModelBuilder();
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponse response = responseBuilder.build(responseDocument);
// Validate entire response
response.validateSignature();
response.validateSignatureAndTrust(getHolderOfKeyFederation());
// --------------------------------------------------------------------
// 3. Get SAML Assertion
// --------------------------------------------------------------------
// Get and validate the identity token from the response
EhdsiIdwsXuaEmployeeIdentityToken identityToken = response.getEhdsiIdwsXuaEmployeeIdentityToken();
identityToken.validateSchema();
identityToken.validateSignatureAndTrust(vocesVault); |