From 535a04fa05f739ec16dd81666e3b0f82dfbd442d Mon Sep 17 00:00:00 2001 From: tknall Date: Wed, 9 Jan 2013 15:41:29 +0000 Subject: pdf-as-lib maven project files moved to pdf-as-lib git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/pdf-as/trunk@926 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../egov/egiz/ldap/client/LDAPClientFactory.java | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactory.java (limited to 'pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactory.java') diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactory.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactory.java new file mode 100644 index 0000000..d88d0b8 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactory.java @@ -0,0 +1,102 @@ +/** + * Copyright 2006 by Know-Center, Graz, Austria + * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a + * joint initiative of the Federal Chancellery Austria and Graz University of + * Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.knowcenter.wag.egov.egiz.ldap.client; + +import iaik.asn1.structures.Name; + +import java.util.Hashtable; +import java.util.List; + +import org.apache.log4j.Logger; + + +/** + * @author Thomas Knall + */ +public abstract class LDAPClientFactory { + + private final Logger log = Logger.getLogger(getClass()); + + protected static final String DEFAULT_IDENTIFIER = "default LDAPClientFactory"; + + /** + * Mapping of category/identifier to LDAPClientFactory. + * Allows the usage of multiple independently configured LDAPClientFactoryImpls. + */ +// private static Hashtable ldapClientFactoryInstances = new Hashtable(); + private static Hashtable ldapClientFactoryInstances = new Hashtable(); + + private LDAPMappingStore ldapMappingStore; + + protected LDAPClientFactory() { + this.ldapMappingStore = new LDAPMappingStore(); + } + + public List getMappings(String issuerName) throws LDAPException { + return this.ldapMappingStore.getMappings(issuerName); + } + + public List getMapping(Name name) { + return this.ldapMappingStore.getMappings(name); + } + + public void resetMappings() { + this.ldapMappingStore.clearStore(); + } + + public boolean hasBeenConfigured() { + return !this.ldapMappingStore.isEmpty(); + } + + public synchronized void registerMapping(LDAPMapping ldapMapping) { + this.ldapMappingStore.addMapping(ldapMapping); + } + + public void setLDAPIssuerNameFilter(LDAPIssuerNameFilter filter) throws LDAPException { + if (this.hasBeenConfigured()) { + throw new LDAPException("Not allowed to set filter after registration of mappings."); + } + this.ldapMappingStore = new LDAPMappingStore(filter); + } + + public boolean isLDAPIssuerNameFilter() { + return this.ldapMappingStore.isLDAPIssuerNameFilter(); + } + + public static synchronized LDAPClientFactory getInstance(String identifier) { + LDAPClientFactory ldapClientFactoryInstance = (LDAPClientFactory) ldapClientFactoryInstances.get(identifier); + if (ldapClientFactoryInstance == null) { + ldapClientFactoryInstance = new LDAPClientFactoryImpl(); + ldapClientFactoryInstances.put(identifier, ldapClientFactoryInstance); + } + return ldapClientFactoryInstance; + } + + public static synchronized LDAPClientFactory getInstance() { + return getInstance(DEFAULT_IDENTIFIER); + } + + public abstract List createClients(String issuerName) throws LDAPException; + +} -- cgit v1.2.3