/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: SAML2PluginsUtils.java,v 1.1 2008/07/08 23:03:34 hengming Exp $ * * Portions Copyrighted 2015-2016 ForgeRock AS. */ package com.sun.identity.saml2.plugins; import com.sun.identity.plugin.configuration.ConfigurationException; import com.sun.identity.plugin.configuration.ConfigurationInstance; import com.sun.identity.plugin.configuration.ConfigurationManager; import com.sun.identity.saml2.common.SAML2Utils; import com.sun.identity.shared.datastruct.CollectionHelper; import java.util.Map; /** * The SAML2PluginsUtils contains utility methods for SAML 2.0 plugins classes. */ public class SAML2PluginsUtils { private static final String AUTHN_CONFIG = "AUTHN"; // These are also defined in OpenAM Core but not accessible here. private static final String PROFILE_ATTRIBUTE = "iplanet-am-auth-dynamic-profile-creation"; private static final String IGNORE_PROFILE = "ignore"; private static final String DYNAMIC_PROFILE = "true"; private static final String CREATE_ALIAS_PROFILE = "createAlias"; private static ConfigurationInstance ci; static { try { ci = ConfigurationManager.getConfigurationInstance(AUTHN_CONFIG); } catch (ConfigurationException ce) { SAML2Utils.debug.error("SAML2PluginsUtils.static:", ce); } } private SAML2PluginsUtils() {} /** * Checks if dynamic profile creation is enabled. * @param realm Realm to check for the dynamic profile creation attribute. * @return true if dynamic profile creation is enabled, false otherwise. */ public static boolean isDynamicProfile(String realm) { String profileAttribute = getProfileAttribute(realm); return DYNAMIC_PROFILE.equalsIgnoreCase(profileAttribute) || CREATE_ALIAS_PROFILE.equalsIgnoreCase(profileAttribute); } /** * Checks if dynamical profile creation or ignore profile is enabled. * @param realm realm to check for the dynamical profile creation attribute. * @return true if dynamical profile creation or ignore profile is enabled, false otherwise. */ public static boolean isDynamicalOrIgnoredProfile(String realm) { String profileAttribute = getProfileAttribute(realm); return profileAttribute != null && (profileAttribute.equalsIgnoreCase(DYNAMIC_PROFILE) || profileAttribute.equalsIgnoreCase(CREATE_ALIAS_PROFILE) || profileAttribute.equalsIgnoreCase(IGNORE_PROFILE)); } /** * Checks if ignore profile is enabled. * @param realm realm to check for the profile creation attribute. * @return true if ignore profile is enabled, false otherwise. */ public static boolean isIgnoredProfile(String realm) { return IGNORE_PROFILE.equalsIgnoreCase(getProfileAttribute(realm)); } private static String getProfileAttribute(String realm) { String result = null; if (ci != null) { try { final Map config = ci.getConfiguration(realm, null); // Will be null in Fedlet case if (config != null) { result = CollectionHelper.getMapAttr(config, PROFILE_ATTRIBUTE); } if (SAML2Utils.debug.messageEnabled()) { SAML2Utils.debug.message("SAML2PluginsUtils.getProfileAttribute: attr=" + result); } } catch (ConfigurationException e) { SAML2Utils.debug.error("SAML2PluginsUtils.getProfileAttribute: unable to get profile attribute", e); } } else { SAML2Utils.debug.error("SAML2PluginsUtils.getProfileAttribute: " + "ConfigurationInstance for " + AUTHN_CONFIG + " was null"); } return result; } }