a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: SAML2ProviderManager.java,v 1.3 2008/06/25 05:47:52 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.util.ProviderManager;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.common.SAML2Constants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.common.SAML2Utils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.jaxb.entityconfig.BaseConfigType;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.jaxb.metadata.EntityDescriptorElement;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.jaxb.metadata.SSODescriptorType;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.meta.SAML2MetaException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.meta.SAML2MetaManager;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.meta.SAML2MetaUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The class <code>SAML2ProviderManager</code> retrieves properties consumed
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * by IDWSF from providers defined in SAML2.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class SAML2ProviderManager implements ProviderManager {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns whether the specified provider exists or not.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the specified provider exists, false if it doesn't
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean containsProvider(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ed = metaManager.getEntityDescriptor("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SAML2ProviderManager.containsProvider:", smex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns whether the specified provider is a member of the specified
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * affiliation or not.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the specified provider is a member of the specified
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * affiliation, false if it is not.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean isAffiliationMember(String providerID, String affID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns whether the specified provider requires name ID encryption
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the specified provider requires name ID encryption,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * false if it doesn't.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean isNameIDEncryptionEnabled(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster config = metaManager.getSPSSOConfig("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster config = metaManager.getIDPSSOConfig("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SAML2ProviderManager.isNameIDEncryptionEnabled:", smex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SAML2ProviderManager.isNameIDEncryptionEnabled:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "config not found.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Map attrMap = SAML2MetaUtils.getAttributes(config);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (List)attrMap.get(SAML2Constants.WANT_NAMEID_ENCRYPTED);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets encryption certificate alias for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return encryption certificate alias for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Key getEncryptionKey(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return (encInfo == null ? null : encInfo.getWrappingKey());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets encryption key size for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return encryption key size for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public int getEncryptionKeyStrength(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return (encInfo == null ? 0 : encInfo.getDataEncStrength());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets encryption key method for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return encryption key method for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getEncryptionKeyAlgorithm(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return (encInfo == null ? null : encInfo.getDataEncAlgorithm());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets decryption key for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return decryption key for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public PrivateKey getDecryptionKey(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster providerConfig = metaManager.getSPSSOConfig("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster providerConfig = metaManager.getIDPSSOConfig("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2Utils.debug.error("SAML2ProviderManager.getDecryptionKey",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return KeyUtil.getDecryptionKey(providerConfig);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets signing certificate alias for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerID provider ID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return signing certificate alias for specified provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getSigningKeyAlias(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster config = metaManager.getSPSSOConfig("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster config = metaManager.getIDPSSOConfig("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SAML2ProviderManager.getSigningKeyAlias:", smex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SAML2ProviderManager.getSigningKeyAlias:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "config not found.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private EncInfo getEncInfo(String providerID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ssod = metaManager.getSPSSODescriptor("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ssod = metaManager.getIDPSSODescriptor("/", providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SAML2ProviderManager.getEncInfo: Descriptor not found.");