From 7d22407fa842604be25ffdaafe88c6c6c8e9d475 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 16 Aug 2013 08:57:05 -0400
Subject: [PATCH] Fixed anonymous LDAP logins (issue-297)

---
 releases.moxie                                 |    2 ++
 src/main/java/com/gitblit/LdapUserService.java |   19 +++++++++++++++----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/releases.moxie b/releases.moxie
index 5400234..e28b83f 100644
--- a/releases.moxie
+++ b/releases.moxie
@@ -12,6 +12,7 @@
     fixes:
     - Fixed Gitblit Authority startup failures when using alternate user services (issue-280)
     - Manually redirect after branch deletion (issue 282)
+    - Fixed anonymous LDAP connections (issue-297)
     - Improved branch deletion-reflog interaction
     - Encode page url parameters as UTF-8
     - Encode filename for binary files on RawPage according to browser
@@ -28,6 +29,7 @@
     - Doug Ayers
     - Ori Livneh
     - Florian Zschocke
+    - Tito Nobre
     settings:
     - { name: 'web.activityDurationMaximum', defaultValue: 30 }
     - { name: 'realm.htpasswd.userFile', defaultValue: '${baseFolder}/htpasswd' }
diff --git a/src/main/java/com/gitblit/LdapUserService.java b/src/main/java/com/gitblit/LdapUserService.java
index 39d564d..b65f9bb 100644
--- a/src/main/java/com/gitblit/LdapUserService.java
+++ b/src/main/java/com/gitblit/LdapUserService.java
@@ -170,13 +170,24 @@
 				if (ldapPort == -1)	// Default Port
 					ldapPort = 636;
 				
-				SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager()); 
-				return new LDAPConnection(sslUtil.createSSLSocketFactory(), ldapUrl.getHost(), ldapPort, bindUserName, bindPassword);
+				LDAPConnection conn;
+				SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());
+				if (StringUtils.isEmpty(bindUserName) && StringUtils.isEmpty(bindPassword)) {
+					 conn = new LDAPConnection(sslUtil.createSSLSocketFactory(), ldapUrl.getHost(), ldapPort);
+				} else {
+					 conn = new LDAPConnection(sslUtil.createSSLSocketFactory(), ldapUrl.getHost(), ldapPort, bindUserName, bindPassword);
+				}
+				return conn;
 			} else {
 				if (ldapPort == -1)	// Default Port
 					ldapPort = 389;
-				
-				LDAPConnection conn = new LDAPConnection(ldapUrl.getHost(), ldapPort, bindUserName, bindPassword);
+
+				LDAPConnection conn;
+				if (StringUtils.isEmpty(bindUserName) && StringUtils.isEmpty(bindPassword)) {
+					conn = new LDAPConnection(ldapUrl.getHost(), ldapPort);	
+				} else {
+					conn = new LDAPConnection(ldapUrl.getHost(), ldapPort, bindUserName, bindPassword);	
+				}
 
 				if (ldapUrl.getScheme().equalsIgnoreCase("ldap+tls")) {
 					SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());

--
Gitblit v1.9.1