diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.security/src/org/eclipse/equinox/internal/security/auth/ConfigurationFederator.java')
-rw-r--r-- | bundles/org.eclipse.equinox.security/src/org/eclipse/equinox/internal/security/auth/ConfigurationFederator.java | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/bundles/org.eclipse.equinox.security/src/org/eclipse/equinox/internal/security/auth/ConfigurationFederator.java b/bundles/org.eclipse.equinox.security/src/org/eclipse/equinox/internal/security/auth/ConfigurationFederator.java deleted file mode 100644 index fb2a52507..000000000 --- a/bundles/org.eclipse.equinox.security/src/org/eclipse/equinox/internal/security/auth/ConfigurationFederator.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.internal.security.auth; - -import java.util.Hashtable; -import javax.security.auth.login.AppConfigurationEntry; -import javax.security.auth.login.Configuration; -import org.eclipse.equinox.internal.security.auth.nls.SecAuthMessages; -import org.eclipse.osgi.util.NLS; - -public class ConfigurationFederator extends Configuration { - - // TODO this usage needs to be changed. We should retrieve federatedConfigs - // from the "ConfigurationFactory" every time we are asked; the "ConfigurationFactory" - // shoudl keep a cache that corresponds to what's in the registry and update it on registry - // events - private Configuration[] federatedConfigs = null; - - private Hashtable configCache = new Hashtable(5); - private Hashtable configToProviderMap = new Hashtable(5); - - final private Configuration defaultConfiguration; - - public ConfigurationFederator(Configuration defaultConfiguration) { - this.defaultConfiguration = defaultConfiguration; - } - - public synchronized AppConfigurationEntry[] getAppConfigurationEntry(String name) { - AppConfigurationEntry[] returnValue = (AppConfigurationEntry[]) configCache.get(name); - if (returnValue != null) - return returnValue; - - // Note: adding default config provider last; extension-point based configs are queried first - Configuration[] configs = getFederatedConfigs(); - Configuration[] allConfigs = configs; - if (defaultConfiguration != null) { - allConfigs = new Configuration[configs.length + 1]; - System.arraycopy(configs, 0, allConfigs, 0, configs.length); - allConfigs[configs.length] = defaultConfiguration; - } - for (int i = 0; i < allConfigs.length; i++) { - boolean found = false; - AppConfigurationEntry[] config = allConfigs[i].getAppConfigurationEntry(name); - if (config == null) - continue; - String cachedProviderName = (String) configToProviderMap.get(name); - if (cachedProviderName != null && !cachedProviderName.equals(allConfigs[i].getClass().getName())) { - String message = NLS.bind(SecAuthMessages.duplicateJaasConfig1, name, cachedProviderName); - AuthPlugin.getDefault().logError(message, null); - } else { - if (found) { - String message = NLS.bind(SecAuthMessages.duplicateJaasConfig2, name, cachedProviderName); - AuthPlugin.getDefault().logError(message, null); - } else if ((config != null) && (config.length != 0)) { - returnValue = config; - configToProviderMap.put(name, allConfigs[i].getClass().getName()); - configCache.put(name, returnValue); - found = true; - } - } - } - - if (returnValue == null || returnValue.length == 0) { - String message = NLS.bind(SecAuthMessages.nonExistantJaasConfig, name); - AuthPlugin.getDefault().logError(message, null); - } - return returnValue; - } - - public synchronized void refresh() { - for (int i = 0; i < federatedConfigs.length; i++) - federatedConfigs[i].refresh(); - if (defaultConfiguration != null) - defaultConfiguration.refresh(); - - configCache.clear(); - configToProviderMap.clear(); - } - - private Configuration[] getFederatedConfigs() { - if (federatedConfigs == null) - federatedConfigs = ConfigurationFactory.getInstance().getConfigurations(); - return federatedConfigs; - } -} |