GUACAMOLE-593: Add documentation to new methods, properly escape attribute.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/735b22bc Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/735b22bc Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/735b22bc Branch: refs/heads/master Commit: 735b22bcf08b8d775fc815aba0cd80f3183a3a33 Parents: 343b21a Author: Nick Couchman <[email protected]> Authored: Tue Jul 31 07:57:54 2018 -0400 Committer: Nick Couchman <[email protected]> Committed: Tue Jul 31 07:57:54 2018 -0400 ---------------------------------------------------------------------- .../apache/guacamole/auth/ldap/ConfigurationService.java | 11 +++++++++++ .../guacamole/auth/ldap/LDAPGuacamoleProperties.java | 3 +++ .../auth/ldap/connection/ConnectionService.java | 6 ++++-- 3 files changed, 18 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/735b22bc/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/ConfigurationService.java ---------------------------------------------------------------------- diff --git a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/ConfigurationService.java b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/ConfigurationService.java index 361af03..b52ad50 100644 --- a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/ConfigurationService.java +++ b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/ConfigurationService.java @@ -359,6 +359,17 @@ public class ConfigurationService { ); } + /** + * Returns the name of the LDAP attribute used to enumerate + * members in a group, or "member" by default. + * + * @return + * The name of the LDAP attribute to use to enumerate + * members in a group. + * + * @throws GuacamoleException + * If guacamole.properties connect be parsed. + */ public String getMemberAttribute() throws GuacamoleException { return environment.getProperty( LDAPGuacamoleProperties.LDAP_MEMBER_ATTRIBUTE, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/735b22bc/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPGuacamoleProperties.java ---------------------------------------------------------------------- diff --git a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPGuacamoleProperties.java b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPGuacamoleProperties.java index e96145f..120b09e 100644 --- a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPGuacamoleProperties.java +++ b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPGuacamoleProperties.java @@ -216,6 +216,9 @@ public class LDAPGuacamoleProperties { }; + /** + * LDAP attribute used to enumerate members of a group in the LDAP directory. + */ public static final StringGuacamoleProperty LDAP_MEMBER_ATTRIBUTE = new StringGuacamoleProperty() { @Override http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/735b22bc/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/connection/ConnectionService.java ---------------------------------------------------------------------- diff --git a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/connection/ConnectionService.java b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/connection/ConnectionService.java index 5533ff0..984e772 100644 --- a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/connection/ConnectionService.java +++ b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/connection/ConnectionService.java @@ -247,7 +247,8 @@ public class ConnectionService { // Add the prefix to the search filter, prefix filter searches for guacConfigGroups with the userDN as the member attribute value connectionSearchFilter.append("(&(objectClass=guacConfigGroup)"); connectionSearchFilter.append("(|("); - connectionSearchFilter.append(confService.getMemberAttribute()); + connectionSearchFilter.append(escapingService.escapeLDAPSearchFilter( + confService.getMemberAttribute())); connectionSearchFilter.append("="); connectionSearchFilter.append(escapingService.escapeLDAPSearchFilter(userDN)); connectionSearchFilter.append(")"); @@ -261,7 +262,8 @@ public class ConnectionService { groupBaseDN, LDAPConnection.SCOPE_SUB, "(&(!(objectClass=guacConfigGroup))(" - + confService.getMemberAttribute() + + escapingService.escapeLDAPSearchFilter( + confService.getMemberAttribute()) + "=" + escapingService.escapeLDAPSearchFilter(userDN) + "))", null,
