GUACAMOLE-524: Add LDAP attribute tokens to StandardTokens. In method addStandardTokens(TokenFilter, Credentials), adds each LDAP attribute from credentials.getLDAPAttributes(). Name of token is "USER_ATTR:" + name of attribute and value is the value of the 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/ad6be801 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/ad6be801 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/ad6be801 Branch: refs/heads/master Commit: ad6be801311b3be14dde68be02f2b72dcdc1d8f9 Parents: 5ca32a2 Author: Jared Frees <[email protected]> Authored: Fri Jun 8 12:40:02 2018 -0400 Committer: Jared Frees <[email protected]> Committed: Fri Jun 8 15:06:00 2018 -0400 ---------------------------------------------------------------------- .../apache/guacamole/token/StandardTokens.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/ad6be801/guacamole-ext/src/main/java/org/apache/guacamole/token/StandardTokens.java ---------------------------------------------------------------------- diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/token/StandardTokens.java b/guacamole-ext/src/main/java/org/apache/guacamole/token/StandardTokens.java index b1b280b..af8a231 100644 --- a/guacamole-ext/src/main/java/org/apache/guacamole/token/StandardTokens.java +++ b/guacamole-ext/src/main/java/org/apache/guacamole/token/StandardTokens.java @@ -23,6 +23,10 @@ import java.text.SimpleDateFormat; import java.util.Date; import org.apache.guacamole.net.auth.AuthenticatedUser; import org.apache.guacamole.net.auth.Credentials; +import java.util.Map; +import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Utility class which provides access to standardized token names, as well as @@ -75,6 +79,12 @@ public class StandardTokens { private static final String TIME_FORMAT = "HHmmss"; /** + * Standard prefix to append to beginning of the name of each custom + * LDAP attribute before adding attributes as tokens. + */ + private static final String LDAP_ATTR_PREFIX = "USER_ATTR:"; + + /** * This utility class should not be instantiated. */ private StandardTokens() {} @@ -134,6 +144,15 @@ public class StandardTokens { if (address != null) filter.setToken(CLIENT_ADDRESS_TOKEN, address); + // Add each custom client LDAP attribute token + Map<String, String> ldapAttrs = credentials.getLDAPAttributes(); + if (ldapAttrs != null) { + for (Map.Entry<String, String> attr : ldapAttrs.entrySet()) { + String tokenName = LDAP_ATTR_PREFIX + attr.getKey().toUpperCase(); + filter.setToken(tokenName, attr.getValue()); + } + } + // Add any tokens which do not require credentials addStandardTokens(filter);
