Author: rgodfrey
Date: Fri Jul 18 14:55:51 2014
New Revision: 1611668
URL: http://svn.apache.org/r1611668
Log:
QPID-5768 : [Java Broker] Add ability to bind without searching for LDAP
authentication manager
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerImpl.java
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java?rev=1611668&r1=1611667&r2=1611668&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
Fri Jul 18 14:55:51 2014
@@ -43,6 +43,9 @@ public interface SimpleLDAPAuthenticatio
@ManagedAttribute( description = "Search filter")
String getSearchFilter();
+ @ManagedAttribute( description = "Bind without search")
+ boolean isBindWithoutSearch();
+
@ManagedAttribute( description = "LDAP context factory")
String getLdapContextFactory();
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerImpl.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerImpl.java?rev=1611668&r1=1611667&r2=1611668&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerImpl.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerImpl.java
Fri Jul 18 14:55:51 2014
@@ -90,6 +90,9 @@ public class SimpleLDAPAuthenticationMan
@ManagedAttributeField
private TrustStore _trustStore;
+ @ManagedAttributeField
+ private boolean _bindWithoutSearch;
+
/**
* Dynamically created SSL Socket Factory implementation used in the case
where user has specified a trust store.
*/
@@ -411,35 +414,48 @@ public class SimpleLDAPAuthenticationMan
private String getNameFromId(String id) throws NamingException
{
- Hashtable<String,Object> env =
createInitialDirContextEnvironment(_providerUrl);
+ if(!isBindWithoutSearch())
+ {
+ Hashtable<String, Object> env =
createInitialDirContextEnvironment(_providerUrl);
- env.put(Context.SECURITY_AUTHENTICATION, "none");
- InitialDirContext ctx = createInitialDirContext(env);
+ env.put(Context.SECURITY_AUTHENTICATION, "none");
+ InitialDirContext ctx = createInitialDirContext(env);
- try
- {
- SearchControls searchControls = new SearchControls();
- searchControls.setReturningAttributes(new String[] {});
- searchControls.setCountLimit(1l);
- searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
- NamingEnumeration<?> namingEnum = null;
- String name = null;
+ try
+ {
+ SearchControls searchControls = new SearchControls();
+ searchControls.setReturningAttributes(new String[]{});
+ searchControls.setCountLimit(1l);
+ searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
+ NamingEnumeration<?> namingEnum = null;
+ String name = null;
- namingEnum = ctx.search(_searchContext, _searchFilter, new
String[] { id }, searchControls);
- if(namingEnum.hasMore())
+ namingEnum = ctx.search(_searchContext, _searchFilter, new
String[]{id}, searchControls);
+ if (namingEnum.hasMore())
+ {
+ SearchResult result = (SearchResult) namingEnum.next();
+ name = result.getNameInNamespace();
+ }
+ return name;
+ }
+ finally
{
- SearchResult result = (SearchResult) namingEnum.next();
- name = result.getNameInNamespace();
+ closeSafely(ctx);
}
- return name;
}
- finally
+ else
{
- closeSafely(ctx);
+ return id;
}
}
+ @Override
+ public boolean isBindWithoutSearch()
+ {
+ return _bindWithoutSearch;
+ }
+
private void closeSafely(InitialDirContext ctx)
{
try
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]