aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java
diff options
context:
space:
mode:
authortknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2008-12-04 19:16:33 +0000
committertknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2008-12-04 19:16:33 +0000
commite452213b7bb66956522cf74fbd255f8970678525 (patch)
treec3c17dc300603713d27548bd495fd73545d2fdb4 /src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java
parent4dc9bbe2a31599cd853a3dea2f2876d0fd05d73c (diff)
downloadpdf-as-3-e452213b7bb66956522cf74fbd255f8970678525.tar.gz
pdf-as-3-e452213b7bb66956522cf74fbd255f8970678525.tar.bz2
pdf-as-3-e452213b7bb66956522cf74fbd255f8970678525.zip
LDAP implementation enhanced.
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@316 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java39
1 files changed, 24 insertions, 15 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java b/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java
index 1390202..ec5548b 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/ldap/client/LDAPClientFactoryImpl.java
@@ -5,8 +5,13 @@ import iaik.asn1.structures.Name;
import iaik.utils.RFC2253NameParser;
import iaik.utils.RFC2253NameParserException;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.commons.lang.ArrayUtils;
import org.apache.log4j.Logger;
/**
@@ -16,7 +21,6 @@ public final class LDAPClientFactoryImpl extends LDAPClientFactory {
private final Logger log = Logger.getLogger(getClass());
-// private Hashtable<String, LDAPClient> ldapClients;
private Hashtable ldapClients;
protected LDAPClientFactoryImpl() {
@@ -43,13 +47,13 @@ public final class LDAPClientFactoryImpl extends LDAPClientFactory {
return rfc2253Name2Domain(nameParser.parse());
}
- private LDAPClient instantiateLDAPClient(String issuerName) throws LDAPException {
+ private List instantiateLDAPClients(String issuerName) throws LDAPException {
if (!super.hasBeenConfigured()) {
log.warn(super.getClass().getName() + " has not been configured yet.");
}
- LDAPClient client = null;
- LDAPMapping mapping = super.getMapping(issuerName);
- if (mapping == null) {
+ List ldapClients = new ArrayList();
+ List mappings = super.getMappings(issuerName);
+ if (mappings == null || mappings.isEmpty()) {
try {
String alternativeURLString = rfc2253Name2Domain(issuerName);
if (alternativeURLString == null || alternativeURLString.length() == 0) {
@@ -57,30 +61,35 @@ public final class LDAPClientFactoryImpl extends LDAPClientFactory {
}
alternativeURLString = "ldap://" + alternativeURLString;
log.warn("Issuer name \"" + issuerName + "\" has not been registered; trying to instantiate client for url \"" + alternativeURLString + "\"...");
- client = new LDAPClientImpl(alternativeURLString);
+ LDAPClient client = new LDAPClientImpl(alternativeURLString);
+ ldapClients.add(client);
} catch (RFC2253NameParserException e) {
throw new LDAPException(e);
}
} else {
- log.debug("Instantiating LDAP client for " + mapping + ".");
- client = new LDAPClientImpl(mapping);
+ log.debug("Instantiating LDAP clients for " + ArrayUtils.toString(mappings.toArray()) + ".");
+ Iterator mappingIt = mappings.iterator();
+ while (mappingIt.hasNext()) {
+ LDAPMapping mapping = (LDAPMapping) mappingIt.next();
+ ldapClients.add(new LDAPClientImpl(mapping));
+ }
}
- return client;
+ return ldapClients;
}
- public synchronized LDAPClient createClient(String issuerName) throws LDAPException {
+ public synchronized List createClients(String issuerName) throws LDAPException {
if (issuerName == null) {
throw new NullPointerException("Issuer name must not be null.");
}
if (issuerName.length() == 0) {
throw new IllegalArgumentException("Issuer name must not be empty.");
}
- LDAPClient ldapClient = (LDAPClient) ldapClients.get(issuerName);
- if (ldapClient == null) {
- ldapClient = instantiateLDAPClient(issuerName);
- ldapClients.put(issuerName, ldapClient);
+ List ldapClientList = (List) ldapClients.get(issuerName);
+ if (ldapClientList == null) {
+ ldapClientList = instantiateLDAPClients(issuerName);
+ ldapClients.put(issuerName, ldapClientList);
}
- return ldapClient;
+ return Collections.unmodifiableList(ldapClientList);
}
}