Page History
...
| Code Block |
|---|
// Byg OIOBSTSAMLAssertion
OIO3BSTSAMLAssertionBuilder oiosamlAssertionBuilder = factory.createOIO3BSTSAMLAssertionBuilder();
oiosamlAssertionBuilder.setIssuer("https://oio3bst-issuer.dk");
oiosamlAssertionBuilder.setNameId("KorsbaekKommune\\MSK");
oiosamlAssertionBuilder.setAudience("http://fmk-onlineaudience.nspoop.dk/dds");
oiosamlAssertionBuilder.setNotOnOrAfter(notOnOrAfter);
oiosamlAssertionBuilder.setCvr("20301823");
oiosamlAssertionBuilder.setOrganizationName("Korsbæk Kommune");
oiosamlAssertionBuilder.setHolderOfKeyCertificate(holderOfKey.getSystemCredentialPair().getCertificate());
oiosamlAssertionBuilder.setSigningVault(signingVault);
OIOBSTSAMLAssertion oiosamlAssertion = oiosamlAssertionBuilder.build(); |
...
| Code Block |
|---|
// NSP OIO SAML Assertion findes i denne variabel:
OIOBSTSAMLAssertion oiosamlAssertion = ...
OIOBSTSAMLAssertionToIDCardRequestDOMBuilder requestBuilder = factory.createOIOBSTSAMLAssertionToIDCardRequestDOMBuilder();
requestBuilder.setAudience("http://fmk-onlineaudience.nspoop.dk/dds");
requestBuilder.setITSystemName("Korsbæk Kommunes IT systemer");
requestBuilder.setSubjectNameID("Mads_Skjern");
requestBuilder.setSigningVault(signingVault);
requestBuilder.setOIOBSTSAMLAssertion(oiosamlAssertion);
Document consumerStsRequestDocument = requestBuilder.build(); |
...
| Code Block | ||
|---|---|---|
| ||
public class TestFactoryFlow {
private static final String EXPECTED_AUTHORIZATIONCODE = "004PT";
private static final String EXPECTED_CPR = "2702681273";
private static final String EXPECTED_CVR = "20688092";
private static final String EXPECTED_EMAIL = "jens@email.dk";
private static final String EXPECTED_GIVENNAME = "Jens Sundbye";
private static final String EXPECTED_ITSYSTEMNAME = "Harmoni/EMS";
private static final String EXPECTED_OCCUPATION = "overlæge";
private static final String EXPECTED_ORGANIZATION = "Lægehuset på bakken";
private static final String EXPECTED_SURNAME = "Poulsen";
private static final String EXPECTED_USEREDUCATIONCODE = "7170";
private static final Date notOnOrAfter = d(10);
@Test
public void testBST2SOSI() {
/**
* Consumer sender request
*/
// CredentialVault og Factory
CredentialVault signingVault = CredentialVaultTestUtil.getMoces3CredentialVault();
CredentialVault holderOfKey = CredentialVaultTestUtil.getVocesHolderOfKeyCredentialVault();
OIOSAMLFactory factory = new OIOSAMLFactory();
OIO3BSTSAMLAssertionBuilder oiosamlAssertionBuilder = factory.createOIO3BSTSAMLAssertionBuilder();
oiosamlAssertionBuilder.setIssuer("https://oio3bst-issuer.dk");
oiosamlAssertionBuilder.setNameId("KorsbaekKommune\\MSK");
oiosamlAssertionBuilder.setAudience("http://fmk-onlineaudience.nspoop.dk/dds");
oiosamlAssertionBuilder.setNotOnOrAfter(notOnOrAfter);
oiosamlAssertionBuilder.setCvr("20301823");
oiosamlAssertionBuilder.setOrganizationName("Korsbæk Kommune");
oiosamlAssertionBuilder.setHolderOfKeyCertificate(holderOfKey.getSystemCredentialPair().getCertificate());
oiosamlAssertionBuilder.setSigningVault(signingVault);
OIOBSTSAMLAssertion oiosamlAssertion = oiosamlAssertionBuilder.build();
OIOBSTSAMLAssertionToIDCardRequestDOMBuilder requestBuilder = factory.createOIOBSTSAMLAssertionToIDCardRequestDOMBuilder();
requestBuilder.setAudience("http://fmk-onlineaudience.nspoop.dk/dds");
requestBuilder.setITSystemName("Korsbæk Kommunes IT systemer");
requestBuilder.setSubjectNameID("Mads_Skjern");
requestBuilder.setSigningVault(signingVault);
requestBuilder.setOIOBSTSAMLAssertion(oiosamlAssertion);
Document consumerStsRequestDocument = requestBuilder.build();
/**
* Send request over netværk
*/
String consumerStsRequestXml = XmlUtil.node2String(consumerStsRequestDocument, false, false);
consumerStsRequestDocument = XmlUtil.readXml(new java.util.Properties(), consumerStsRequestXml, false);
/**
* STS modtager request
*/
OIOBSTSAMLAssertionToIDCardRequest stsRequest = factory.createOIOBSTSAMLAssertionToIDCardRequestModelBuilder().build(consumerStsRequestDocument);
// Her vil STS'en verificere ID kortet. I dette eksempel verificeres følgende tre attributter:
OIOBSTSAMLAssertion oiobstsamlAssertion = stsRequest.getOIOBSTSAMLAssertion();
Assert.assertEquals("OIO-SAML-3.0", oiobstsamlAssertion.getSpecVersion());
Assert.assertEquals("20301823", oiobstsamlAssertion.getCvrNumberIdentifier());
Assert.assertEquals("http://fmk-onlineaudience.nspoop.dk/dds", oiobstsamlAssertion.getAudienceRestriction());
/**
* STS bygger response
*/
UserIDCard uidc = createUserIDCard(signingVault);
OIOBSTSAMLAssertionToIDCardResponseDOMBuilder responseBuilder = factory.createOIOBSTSAMLAssertionToIDCardResponseDOMBuilder();
responseBuilder.setAudienceRestriction("http://fmk-onlineaudience.nspoop.dk/dds");
responseBuilder.setIDCard(uidc);
responseBuilder.setSigningVault(signingVault);
responseBuilder.setContext("context");
responseBuilder.setRelatesTo("relatesTo");
Document consumerStsResponseDocument = responseBuilder.build();
/**
* Send response over netværk
*/
String consumerStsResponseXml = XmlUtil.node2String(consumerStsResponseDocument, false, false);
consumerStsResponseDocument = XmlUtil.readXml(new java.util.Properties(), consumerStsResponseXml, false);
/**
* Consumer modtager response
*/
OIOBSTSAMLAssertionToIDCardResponse consumerStsResponse = factory.createOIOBSTSAMLAssertionToIDCardResponseModelBuilder().build(consumerStsResponseDocument);
IDCard idCardResponse = consumerStsResponse.getIDCard();
Assert.assertEquals("1.0.1", idCardResponse.getVersion());
Assert.assertEquals(AuthenticationLevel.MOCES_TRUSTED_USER, idCardResponse.getAuthenticationLevel());
Assert.assertEquals("hans@dampf.dk", idCardResponse.getAlternativeIdentifier());
}
private UserIDCard createUserIDCard(CredentialVault signingVault) {
SOSIFactory factory = new SOSIFactory(signingVault, new java.util.Properties());
CareProvider careProvider = new CareProvider(NameSpaces.NS_MEDCOM + ":cvrnumber", EXPECTED_CVR, EXPECTED_ORGANIZATION);
UserInfo userInfo = new UserInfo(EXPECTED_CPR, EXPECTED_GIVENNAME, EXPECTED_SURNAME, EXPECTED_EMAIL, EXPECTED_OCCUPATION, EXPECTED_USEREDUCATIONCODE, EXPECTED_AUTHORIZATIONCODE);
UserIDCard idcard = factory.createNewUserIDCard(EXPECTED_ITSYSTEMNAME, userInfo, careProvider, AuthenticationLevel.MOCES_TRUSTED_USER, null, null, null, "hans@dampf.dk");
return new UserIDCard(idcard, "newIssuer");
}
private static Date d(int minutesFromNow) {
long l = minutesFromNow * 60L * 1000L;
return d(l);
}
private static Date d(long milliSecondsFromNow) {
Calendar now = Calendar.getInstance();
now.set(Calendar.MILLISECOND, 0);
return new Date(now.getTimeInMillis() + milliSecondsFromNow);
}
} |
...