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.LDAPConnection;
|
||||||
import com.novell.ldap.LDAPEntry;
|
import com.novell.ldap.LDAPEntry;
|
||||||
import com.novell.ldap.LDAPException;
|
import com.novell.ldap.LDAPException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -249,7 +250,8 @@ public class AuthenticationProviderService {
|
|||||||
/**
|
/**
|
||||||
* Returns all custom LDAP attributes on the user currently bound under
|
* Returns all custom LDAP attributes on the user currently bound under
|
||||||
* the given LDAP connection. The custom attributes are specified in
|
* 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
|
* @param ldapConnection
|
||||||
* LDAP connection to find the custom LDAP attributes.
|
* LDAP connection to find the custom LDAP attributes.
|
||||||
@@ -260,7 +262,9 @@ public class AuthenticationProviderService {
|
|||||||
* @return
|
* @return
|
||||||
* All attributes on the user currently bound under the
|
* All attributes on the user currently bound under the
|
||||||
* given LDAP connection, as a map of attribute name to
|
* 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
|
* @throws GuacamoleException
|
||||||
* If an error occurs retrieving the user DN or the attributes.
|
* 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 there are no attributes there is no reason to search LDAP
|
||||||
if (attrList == null || attrList.isEmpty())
|
if (attrList == null || attrList.isEmpty())
|
||||||
return null;
|
return Collections.<String, String>emptyMap();
|
||||||
|
|
||||||
// Build LDAP query parameters
|
// Build LDAP query parameters
|
||||||
String[] attrArray = attrList.toArray(new String[attrList.size()]);
|
String[] attrArray = attrList.toArray(new String[attrList.size()]);
|
||||||
@@ -283,7 +287,12 @@ public class AuthenticationProviderService {
|
|||||||
try {
|
try {
|
||||||
// Get LDAP attributes by querying LDAP
|
// Get LDAP attributes by querying LDAP
|
||||||
LDAPEntry userEntry = ldapConnection.read(userDN, attrArray);
|
LDAPEntry userEntry = ldapConnection.read(userDN, attrArray);
|
||||||
|
if (userEntry == null)
|
||||||
|
return Collections.<String, String>emptyMap();
|
||||||
|
|
||||||
LDAPAttributeSet attrSet = userEntry.getAttributeSet();
|
LDAPAttributeSet attrSet = userEntry.getAttributeSet();
|
||||||
|
if (attrSet == null)
|
||||||
|
return Collections.<String, String>emptyMap();
|
||||||
|
|
||||||
// Add each attribute into Map
|
// Add each attribute into Map
|
||||||
for (Object attrObj : attrSet) {
|
for (Object attrObj : attrSet) {
|
||||||
|
Reference in New Issue
Block a user