Versions Compared

Key

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

...

Code Block
collapsetrue
public class TestFactoryFlow extends AbstractUserIDCardTest {

    @Test
    public void testBST2SOSI() {

        /**
         * Consumer sender request
         */

        // CredentialVault og Factory
        CredentialVault signingVault = CredentialVaultTestUtil.getVoces3CredentialVault();
        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-online.dk");
        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-online.dk");
        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-online.dk", oiobstsamlAssertion.getAudienceRestriction());

        /**
         *  STS bygger response
         */
        UserIDCard uidc = createUserIDCard();

        OIOBSTSAMLAssertionToIDCardResponseDOMBuilder responseBuilder = factory.createOIOBSTSAMLAssertionToIDCardResponseDOMBuilder();
        responseBuilder.setAudienceRestriction("http://fmk-online.dk");
        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());
    }

}

...