mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUACAMOLE-580: Merge changes ensuring null return values from JLDAP are properly handled when reading attributes.
This commit is contained in:
@@ -26,6 +26,7 @@ import com.novell.ldap.LDAPAttributeSet;
|
||||
import com.novell.ldap.LDAPConnection;
|
||||
import com.novell.ldap.LDAPEntry;
|
||||
import com.novell.ldap.LDAPException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -249,7 +250,8 @@ public class AuthenticationProviderService {
|
||||
/**
|
||||
* Returns all custom LDAP attributes on the user currently bound under
|
||||
* the given LDAP connection. The custom attributes are specified in
|
||||
* guacamole.properties.
|
||||
* guacamole.properties. If no attributes are specified or none are
|
||||
* found on the LDAP user object, an empty map is returned.
|
||||
*
|
||||
* @param ldapConnection
|
||||
* LDAP connection to find the custom LDAP attributes.
|
||||
@@ -260,7 +262,9 @@ public class AuthenticationProviderService {
|
||||
* @return
|
||||
* All attributes on the user currently bound under the
|
||||
* given LDAP connection, as a map of attribute name to
|
||||
* corresponding attribute value.
|
||||
* corresponding attribute value, or an empty map if no
|
||||
* attributes are specified or none are found on the user
|
||||
* object.
|
||||
*
|
||||
* @throws GuacamoleException
|
||||
* If an error occurs retrieving the user DN or the attributes.
|
||||
@@ -273,7 +277,7 @@ public class AuthenticationProviderService {
|
||||
|
||||
// If there are no attributes there is no reason to search LDAP
|
||||
if (attrList == null || attrList.isEmpty())
|
||||
return null;
|
||||
return Collections.<String, String>emptyMap();
|
||||
|
||||
// Build LDAP query parameters
|
||||
String[] attrArray = attrList.toArray(new String[attrList.size()]);
|
||||
@@ -283,7 +287,12 @@ public class AuthenticationProviderService {
|
||||
try {
|
||||
// Get LDAP attributes by querying LDAP
|
||||
LDAPEntry userEntry = ldapConnection.read(userDN, attrArray);
|
||||
if (userEntry == null)
|
||||
return Collections.<String, String>emptyMap();
|
||||
|
||||
LDAPAttributeSet attrSet = userEntry.getAttributeSet();
|
||||
if (attrSet == null)
|
||||
return Collections.<String, String>emptyMap();
|
||||
|
||||
// Add each attribute into Map
|
||||
for (Object attrObj : attrSet) {
|
||||
|
Reference in New Issue
Block a user