4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * The contents of this file are subject to the terms
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * of the Common Development and Distribution License
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * (the License). You may not use this file except in
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * compliance with the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * You can obtain a copy of the License at
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * See the License for the specific language governing
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * permission and limitations under the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * When distributing Covered Code, include this CDDL
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Header Notice in each file and include the License file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * If applicable, add the following below the CDDL Header,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * with the fields enclosed by brackets [] replaced by
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * your own identifying information:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * "Portions Copyrighted [year] [name of copyright owner]"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * $Id: ImportSAML2MetaData.java,v 1.5 2008/07/08 01:12:01 exu Exp $
1a09ec0264aacab68f85b04c150957647557a35dPeter Major * Portions Copyrighted 2011-2014 ForgeRock AS.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml2.meta.SAML2MetaException;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml2.meta.SAML2MetaManager;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml2.meta.SAML2MetaUtils;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml2.jaxb.entityconfig.BaseConfigType;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml2.jaxb.entityconfig.EntityConfigElement;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Import SAML2 Metadata.
1a09ec0264aacab68f85b04c150957647557a35dPeter Major private static final Debug DEBUG = Debug.getInstance("workflow");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Imports meta and extended metadata.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param realm Realm of the entity.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param metadata Meta data.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param extended extended data.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @return realm and entity ID.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster SAML2MetaManager metaManager = new SAML2MetaManager();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Object obj = SAML2MetaUtils.convertStringToJAXB(extended);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster configElt = (obj instanceof EntityConfigElement) ?
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (configElt != null && configElt.isHosted()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster configElt.getIDPSSOConfigOrSPSSOConfigOrAuthnAuthorityConfig();
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper // Load the metadata if it has been provided
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper entityID = importSAML2MetaData(metaManager, realm, metadata);
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper // Load the extended metadata if it has been provided
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper metaManager.createEntityConfig(realm, configElt);
1a09ec0264aacab68f85b04c150957647557a35dPeter Major DEBUG.error("An error occurred while importing the SAML metadata", e);
1a09ec0264aacab68f85b04c150957647557a35dPeter Major DEBUG.error("An error occurred while importing the SAML metadata", e);
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper private static String importSAML2MetaData(SAML2MetaManager metaManager, String realm,
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper throws SAML2MetaException, JAXBException, WorkflowException {
1a09ec0264aacab68f85b04c150957647557a35dPeter Major Document doc = XMLUtils.toDOMDocument(metadata, DEBUG);
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper "import-entity-exception-invalid-descriptor", null);
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper List<String> entityIds = SAML2MetaUtils.importSAML2Document(metaManager, realm, doc);
c067200d753b3e9fba1a4a217a35b6c5aaaebbfaMark de Reeper "import-entity-exception-invalid-descriptor", null);