GUACAMOLE-234: Tweaks to handling bind requests/failures.

This commit is contained in:
Nick Couchman
2018-12-27 10:36:33 -05:00
committed by Virtually Nick
parent 742b0c4e65
commit ed568b1f55

View File

@@ -25,6 +25,8 @@ import org.apache.directory.api.ldap.model.exception.LdapException;
import org.apache.directory.api.ldap.model.filter.ExprNode; import org.apache.directory.api.ldap.model.filter.ExprNode;
import org.apache.directory.api.ldap.model.message.BindRequest; import org.apache.directory.api.ldap.model.message.BindRequest;
import org.apache.directory.api.ldap.model.message.BindRequestImpl; import org.apache.directory.api.ldap.model.message.BindRequestImpl;
import org.apache.directory.api.ldap.model.message.BindResponse;
import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
import org.apache.directory.api.ldap.model.message.SearchRequest; import org.apache.directory.api.ldap.model.message.SearchRequest;
import org.apache.directory.api.ldap.model.message.SearchRequestImpl; import org.apache.directory.api.ldap.model.message.SearchRequestImpl;
import org.apache.directory.api.ldap.model.message.SearchScope; import org.apache.directory.api.ldap.model.message.SearchScope;
@@ -149,9 +151,14 @@ public class LDAPConnectionService {
BindRequest bindRequest = new BindRequestImpl(); BindRequest bindRequest = new BindRequestImpl();
bindRequest.setDn(userDN); bindRequest.setDn(userDN);
bindRequest.setCredentials(password); bindRequest.setCredentials(password);
ldapConnection.bind(bindRequest); BindResponse bindResponse = ldapConnection.bind(bindRequest);
if (ldapConnection.isConnected() && ldapConnection.isAuthenticated()) if (bindResponse.getLdapResult().getResultCode() == ResultCodeEnum.SUCCESS)
return ldapConnection; return ldapConnection;
else
throw new GuacamoleInvalidCredentialsException("Error binding"
+ " to server: " + bindResponse.toString(),
CredentialsInfo.USERNAME_PASSWORD);
} }
@@ -163,9 +170,6 @@ public class LDAPConnectionService {
"Unable to bind to the LDAP server.", "Unable to bind to the LDAP server.",
CredentialsInfo.USERNAME_PASSWORD); CredentialsInfo.USERNAME_PASSWORD);
} }
throw new GuacamoleInvalidCredentialsException("Authentication failed.",
CredentialsInfo.USERNAME_PASSWORD);
} }