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);
 

Reply via email to