code: private Map<String, String> filterProps(Map<String, Object> props) {
          HashMap<String, String> filteredProps = new HashMap<>();
          Iterator<String> it = props.keySet().iterator();
          boolean debug = tc.isDebugEnabled() && TraceComponent.isAnyTracingEnabled();
  
          while (it.hasNext()) {
              String key = it.next();
              String newKey = null;
              if (debug) {
                  Tr.debug(tc, "key: " + key + " value: " + props.get(key));
              }
              // skip stuff we don't care about
              if (propertiesToRemove.contains(key)) {
                  continue;
              }
  
              // convert from shorthand key (timeout) to actual prop name (com.ibm.way.too.long.name.timeout)
              // note that this swap is NOT case sensitive.
              newKey = key;
              if (propsToTranslate.containsKey(key.toLowerCase())) {
                  newKey = propsToTranslate.get(key.toLowerCase());
                  if (debug) {
                      Tr.debug(tc, " translated " + key + " to " + newKey);
                  }
              }
  
              filteredProps.put(newKey, props.get(key).toString());
  
              // special case for authnToken
              if (newKey.compareTo("authnToken") == 0) {
                  String replacementKey = validateAuthn(props.get(key).toString());
                  if (replacementKey != null) {
                      filteredProps.remove(newKey);
                      filteredProps.put(replacementKey, "true");
                  } else {
                      filteredProps.remove(newKey); // invalid token type, back it out.
                  }
              }
          }
          return filteredProps;
      }
docs: given the map of properties, remove ones we don't care about, and translate some others.
  If it's not one we're familiar with, transfer it unaltered
  
  @param props - input list of properties
  @return - a new Map of the filtered properties.