Github user mike-jumper commented on a diff in the pull request:

    
https://github.com/apache/incubator-guacamole-client/pull/202#discussion_r149183803
  
    --- Diff: 
extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/connection/ConnectionService.java
 ---
    @@ -129,62 +130,79 @@
                 Map<String, Connection> connections = new HashMap<String, 
Connection>();
                 while (results.hasMore()) {
     
    -                LDAPEntry entry = results.next();
    +                try {
     
    -                // Get common name (CN)
    -                LDAPAttribute cn = entry.getAttribute("cn");
    -                if (cn == null) {
    -                    logger.warn("guacConfigGroup is missing a cn.");
    -                    continue;
    -                }
    +                    LDAPEntry entry = results.next();
     
    -                // Get associated protocol
    -                LDAPAttribute protocol = 
entry.getAttribute("guacConfigProtocol");
    -                if (protocol == null) {
    -                    logger.warn("guacConfigGroup \"{}\" is missing the "
    -                              + "required \"guacConfigProtocol\" 
attribute.",
    -                            cn.getStringValue());
    -                    continue;
    -                }
    +                    // Get common name (CN)
    +                    LDAPAttribute cn = entry.getAttribute("cn");
    +                    if (cn == null) {
    +                        logger.warn("guacConfigGroup is missing a cn.");
    +                        continue;
    +                    }
    +
    +                    // Get associated protocol
    +                    LDAPAttribute protocol = 
entry.getAttribute("guacConfigProtocol");
    +                    if (protocol == null) {
    +                        logger.warn("guacConfigGroup \"{}\" is missing the 
"
    +                                  + "required \"guacConfigProtocol\" 
attribute.",
    +                                cn.getStringValue());
    +                        continue;
    +                    }
     
    -                // Set protocol
    -                GuacamoleConfiguration config = new 
GuacamoleConfiguration();
    -                config.setProtocol(protocol.getStringValue());
    +                    // Set protocol
    +                    GuacamoleConfiguration config = new 
GuacamoleConfiguration();
    +                    config.setProtocol(protocol.getStringValue());
     
    -                // Get parameters, if any
    -                LDAPAttribute parameterAttribute = 
entry.getAttribute("guacConfigParameter");
    -                if (parameterAttribute != null) {
    +                    // Get parameters, if any
    +                    LDAPAttribute parameterAttribute = 
entry.getAttribute("guacConfigParameter");
    +                    if (parameterAttribute != null) {
     
    -                    // For each parameter
    -                    Enumeration<?> parameters = 
parameterAttribute.getStringValues();
    -                    while (parameters.hasMoreElements()) {
    +                        // For each parameter
    +                        Enumeration<?> parameters = 
parameterAttribute.getStringValues();
    +                        while (parameters.hasMoreElements()) {
     
    -                        String parameter = (String) 
parameters.nextElement();
    +                            String parameter = (String) 
parameters.nextElement();
     
    -                        // Parse parameter
    -                        int equals = parameter.indexOf('=');
    -                        if (equals != -1) {
    +                            // Parse parameter
    +                            int equals = parameter.indexOf('=');
    +                            if (equals != -1) {
     
    -                            // Parse name
    -                            String name = parameter.substring(0, equals);
    -                            String value = parameter.substring(equals+1);
    +                                // Parse name
    +                                String name = parameter.substring(0, 
equals);
    +                                String value = 
parameter.substring(equals+1);
     
    -                            config.setParameter(name, value);
    +                                config.setParameter(name, value);
    +
    +                            }
     
                             }
     
                         }
     
    -                }
    +                    // Filter the configuration, substituting all defined 
tokens
    +                    tokenFilter.filterValues(config.getParameters());
     
    -                // Filter the configuration, substituting all defined 
tokens
    -                tokenFilter.filterValues(config.getParameters());
    +                    // Store connection using cn for both identifier and 
name
    +                    String name = cn.getStringValue();
    +                    Connection connection = new SimpleConnection(name, 
name, config);
    +                    
connection.setParentIdentifier(LDAPAuthenticationProvider.ROOT_CONNECTION_GROUP);
    +                    connections.put(name, connection);
     
    -                // Store connection using cn for both identifier and name
    -                String name = cn.getStringValue();
    -                Connection connection = new SimpleConnection(name, name, 
config);
    -                
connection.setParentIdentifier(LDAPAuthenticationProvider.ROOT_CONNECTION_GROUP);
    -                connections.put(name, connection);
    +                }
    +
    +                // Deal with issues following LDAP referrals
    +                catch (LDAPReferralException e) {
    +                    if (confService.getFollowReferrals()) {
    +                        logger.error("Could not follow referral.", 
e.getFailedReferral());
    --- End diff --
    
    If the intent is to include `e.getFailedReferral()` within the logged 
message, then the `{}` string must be present in the message at the location 
the value should be inserted.


---

Reply via email to