I'm trying to get an application's LDAP connection to use secure port 636 instead of 389. The following code works perfectly fine with port 389 but throws an Exception with 389 is repalced with 636.
Exception in thread "main" LDAPException(resultCode=81 (server down), errorMessage='The connection to server nlbldap.company_name.co.uk:636 was closed while waiting for a response to a bind request SimpleBindRequest(dn='jdoe@company_name.co.uk'): An I/O error occurred while trying to read the response from the server: SocketException(message='Connection reset', trace='read(SocketInputStream.java:186) / read(SocketInputStream.java:140) / fill(BufferedInputStream.java:252) / read(BufferedInputStream.java:271) / read(ASN1StreamReader.java:992) / readType(ASN1StreamReader.java:329) / beginSequence(ASN1StreamReader.java:912) / readLDAPResponseFrom(LDAPMessage.java:1146) / run(LDAPConnectionReader.java:251)', revision=24950)') at com.unboundid.ldap.sdk.SimpleBindRequest.handleResponse(SimpleBindRequest.java:723) at com.unboundid.ldap.sdk.SimpleBindRequest.process(SimpleBindRequest.java:575) at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:2154) at com.unboundid.ldap.sdk.LDAPConnection.(LDAPConnection.java:670) at com.unboundid.ldap.sdk.LDAPConnection.(LDAPConnection.java:563) at LdapsMain1.LdapSoton.connect(LdapSoton.java:39) at LdapsMain1.Main.main(Main.java:26)
package mywork.classes;
import java.util.List;
import com.unboundid.ldap.sdk.Filter;
import com.unboundid.ldap.sdk.LDAPConnection;
import com.unboundid.ldap.sdk.LDAPException;
import com.unboundid.ldap.sdk.LDAPSearchException;
import com.unboundid.ldap.sdk.SearchRequest;
import com.unboundid.ldap.sdk.SearchResult;
import com.unboundid.ldap.sdk.SearchResultEntry;
import com.unboundid.ldap.sdk.SearchScope;
public class Ldapcompany_name {
static boolean connect(String username, String password) throws LDAPException
{
String baseDN = "ou=user,dc=company_name,dc=co,dc=uk";
String filter = "(&(cn="+username+")(objectClass=user))";
boolean hasRights = false;
LDAPConnection connection = new LDAPConnection("nlbldap.company_name.co.uk", 389, username+"@company_name.co.uk", password);
List<SearchResultEntry> results = getResults(connection, baseDN, filter);
String msg = "results.size() = " + results.size();
for(SearchResultEntry entry : results)
{
for(String v : entry.getAttributeValues("memberof"))
{
if(v.contains("ISSWA-SIS-Web"))
{
hasRights = true;
}
}
}
return hasRights;
}
private static List<SearchResultEntry> getResults(LDAPConnection connection, String baseDN, String filter) throws LDAPSearchException, LDAPException
{
SearchResult searchResult;
Filter filter2 = Filter.createEqualityFilter("ou", "*");
SearchRequest searchRequest2 = new SearchRequest("dc=company_name,dc=co,dc=uk", SearchScope.SUB, filter,"cn", "mail","memberOf");
if (connection.isConnected())
{
searchResult = connection.search(searchRequest2);
for (SearchResultEntry entry : searchResult.getSearchEntries())
{
String name = entry.getAttributeValue("cn");
Object mail = entry.getAttributeValues("memberOf");
System.out.println(name + " " + mail);
}
return searchResult.getSearchEntries();
}
return null;
}
}
This is the stack trace
Exception in thread "main" LDAPException(resultCode=81 (server down), errorMessage='The connection to server nlbldap.company_name.co.uk:636 was closed while waiting for a response to a bind request SimpleBindRequest(dn='jdoe@company_name.co.uk'): An I/O error occurred while trying to read the response from the server: SocketException(message='Connection reset', trace='read(SocketInputStream.java:186) / read(SocketInputStream.java:140) / fill(BufferedInputStream.java:252) / read(BufferedInputStream.java:271) / read(ASN1StreamReader.java:992) / readType(ASN1StreamReader.java:329) / beginSequence(ASN1StreamReader.java:912) / readLDAPResponseFrom(LDAPMessage.java:1146) / run(LDAPConnectionReader.java:251)', revision=24950)')
at com.unboundid.ldap.sdk.SimpleBindRequest.handleResponse(SimpleBindRequest.java:723)
at com.unboundid.ldap.sdk.SimpleBindRequest.process(SimpleBindRequest.java:575)
at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:2154)
at com.unboundid.ldap.sdk.LDAPConnection.<init>(LDAPConnection.java:670)
at com.unboundid.ldap.sdk.LDAPConnection.<init>(LDAPConnection.java:563)
at LdapsMain1.LdapSoton.connect(LdapSoton.java:39)
at LdapsMain1.Main.main(Main.java:26)