code: @Override
      public Object getAttribute(String key) {
          if (userAttributes == null) {
              return null;
          }
  
          final List<Object> values = userAttributes.get(key);
          if (values != null && values.size() > 0) {
              return values.get(0);
          }
  
          return null;
      }
docs: Returns an attribute for a key. For objects represented as strings, a <code>java.lang.String
  </code> will be returned. Binary values will be represented as byte arrays.
  
  @param key the attribute name.
  @return value the attribute value identified by the key.