Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
collapsetrue
public class TestFactoryFlow extends AbstractUserIDCardTest {
		
	@Test
	        
 @Test
    public void testBst2Idws() {

        /**
         * Consumer sender request
         */

        // CredentialVault og Factory
        CredentialVault signingVault = CredentialVaultTestUtil.getVoces3CredentialVault();
        CredentialVault holderOfKeyVault = CredentialVaultTestUtil.getVocesHolderOfKeyCredentialVault();
        OIOSAMLFactory factory = new OIOSAMLFactory();

        // Byg OIOSAMLAssertionOIOBSTSAMLAssertion
        UserIDCardOIO3BSTCitizenSAMLAssertionBuilder uidcoio3bstCitizenSAMLAssertionBuilder = createUserIDCard();

        OIOSAMLAssertionBuilder oiosamlAssertionBuilder = factory.createOIOSAMLAssertionBuildercreateOIO3BSTCitizenSAMLAssertionBuilder();
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setAudienceRestrictionsetAudience("http://fmk-online.dk");
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setRecipientURLsetIssuer("https://fmkIssuer");
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setIssuersetNameId("IssuerNameId");
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setNotBefore(notBeforesetAssuranceLevel(AssuranceLevel.NSIS.Substantial);
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setNotOnOrAftersetCpr(notOnOrAfter"0101701234");
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setDeliveryNotOnOrAfter(d(10000L)setNotOnOrAfter(notOnOrAfter);
        oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.setUserIdCardsetSigningVault(uidcsigningVault);
        oiosamlAssertionBuilder.setSigningVault(signingVaultoio3bstCitizenSAMLAssertionBuilder.setHolderOfKeyCertificate(holderOfKeyVault.getSystemCredentialPair().getCertificate());
        OIOSAMLAssertionOIOBSTSAMLAssertion oiosamlAssertionoiobstsamlAssertion = oiosamlAssertionBuilderoio3bstCitizenSAMLAssertionBuilder.build();

        // Byg STS request
        OIOSAMLAssertionToIDCardRequestDOMBuilderOIOBootstrapToIdentityTokenRequestDOMBuilder domBuilderrequestDomBuilder = factory.createOIOSAMLAssertionToIDCardRequestDOMBuildercreateOIOBootstrapToIdentityTokenRequestDOMBuilder();
        domBuilderrequestDomBuilder.setSigningVaultsetOIOBootstrapToken(signingVaultoiobstsamlAssertion);
        domBuilder.setOIOSAMLAssertion(oiosamlAssertion);
        domBuilder.setITSystemName("EMS");
        domBuilder.setUserAuthorizationCode("2345C"requestDomBuilder.setAudience("http://fmk-online.dk");
        domBuilderrequestDomBuilder.setUserEducationCodesetCPRNumberClaim("71700101701234");
        domBuilderrequestDomBuilder.setUserGivenName("Fritz");
        domBuilder.setUserSurName("Müller"setSigningVault(signingVault);
        Document consumerStsRequestDocument = domBuilderrequestDomBuilder.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
         */
        OIOBootstrapToIdentityTokenRequest stsRequest = factory.createOIOBootstrapToIdentityTokenRequestModelBuilder().build(consumerStsRequestDocument);

        // Her vil STS'en verificere ID kortet. I dette eksempel verificeres følgende tre attributter:
        OIOBSTSAMLAssertion oiobstsamlAssertion = stsRequest.getOIOBSTSAMLAssertion();
        Assert.assertEquals("DKOIO-SAML-23.0", oiobstsamlAssertion.getSpecVersion());
        Assert.assertEquals("3Substantial", oiobstsamlAssertion.getAssuranceLevel());
        Assert.assertEquals("http://fmk-online.dk", oiobstsamlAssertion.getAudienceRestriction());

        /**
         *  STS bygger response
         */

        // Byg IdentityToken
        CitizenIdentityTokenBuilder identityTokenBuilder = factory.createCitizenIdentityTokenBuilder();
        identityTokenBuilder.setAudienceRestriction("http://fmk-online.dk");
        identityTokenBuilder.setRecipientURL("https://fmk");
        identityTokenBuilder.setIssuer("Issuer");
        identityTokenBuilder.setNotBefore(notBefore);
        identityTokenBuilder.setNotOnOrAfter(notOnOrAfter);
        identityTokenBuilder.setDeliveryNotOnOrAfter(notOnOrAfter);
        identityTokenBuilder.setCprNumberAttribute("0101701234");
        identityTokenBuilder.setSubjectNameID("SubjectNameID");
        identityTokenBuilder.setSubjectNameIDFormat("SubjectNameIDFormat");
        identityTokenBuilder.setHolderOfKeyCertificate(holderOfKeyVault.getSystemCredentialPair().getCertificate());
        identityTokenBuilder.setSigningVault(signingVault);

        IdentityToken identityToken = identityTokenBuilder.build();

        // Byg STS response
        AbstractOIOToIdentityTokenResponseDOMBuilder<?> responseBuilder = factory.createOIOBootstrapToIdentityTokenResponseDOMBuilder();
        responseBuilder.setIdentityToken(identityToken);
        responseBuilder.setSigningVault(signingVault);
        responseBuilder.setRelatesTo("relatesTo");
        responseBuilder.setContext("context");

        Document consumerStsResponseDocument = responseBuilder.build();

        /**
         *  Send response over netværk
         */
        String consumerStsResponseXml = XmlUtil.node2String(consumerStsResponseDocument, false, false);
        consumerStsResponseDocument = XmlUtil.readXml(new Properties(), consumerStsResponseXml, false);

        /**
         *  Consumer modtager response
         */
        OIOBootstrapToIdentityTokenResponse consumerStsResponse = factory.createOIOBootstrapToIdentityTokenResponseModelBuilder().build(consumerStsResponseDocument);

        IdentityToken identityTokenResponse = consumerStsResponse.getIdentityToken();
        Assert.assertEquals("DK-SAML-2.0", identityTokenResponse.getSpecVersion());
        Assert.assertEquals("3", identityTokenResponse.getAssuranceLevel());
        Assert.assertEquals("http://fmk-online.dk", identityTokenResponse.getAudienceRestriction());
    }
}

...