From a48dc09434db43d6ec044214f8d41197d885d30b Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Mon, 21 Jul 2014 18:44:22 +0000 Subject: QPID-5768 : Allow authenticated LDAP search git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1612381 13f79535-47bb-0310-9956-ffa450edef68 --- .../manager/SimpleLDAPAuthenticationManager.java | 6 ++++ .../SimpleLDAPAuthenticationManagerImpl.java | 37 ++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java index ec735ad4e8..4e285df384 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java @@ -51,4 +51,10 @@ public interface SimpleLDAPAuthenticationManager env = createInitialDirContextEnvironment(_providerUrl); - env.put(Context.SECURITY_AUTHENTICATION, "none"); + + setupSearchContext(env); InitialDirContext ctx = null; try @@ -361,6 +379,20 @@ public class SimpleLDAPAuthenticationManagerImpl extends AbstractAuthenticationM } } + private void setupSearchContext(final Hashtable env) + { + if(_searchUsername != null && _searchUsername.trim().length()>0) + { + env.put(Context.SECURITY_AUTHENTICATION, "simple"); + env.put(Context.SECURITY_PRINCIPAL, _searchUsername); + env.put(Context.SECURITY_CREDENTIALS, _searchPassword); + } + else + { + env.put(Context.SECURITY_AUTHENTICATION, "none"); + } + } + private class SimpleLDAPPlainCallbackHandler implements CallbackHandler { @@ -418,7 +450,8 @@ public class SimpleLDAPAuthenticationManagerImpl extends AbstractAuthenticationM { Hashtable env = createInitialDirContextEnvironment(_providerUrl); - env.put(Context.SECURITY_AUTHENTICATION, "none"); + setupSearchContext(env); + InitialDirContext ctx = createInitialDirContext(env); try -- cgit v1.2.1