code: private Properties getElementProperties(Map<String, Object> configProps, String elementName, String... attrKeys) {
          Properties properties = new Properties();
          for (String attrKey : attrKeys) {
              String value = (String) configProps.get(attrKey);
              if (value != null && value.length() > 0) {
                  value = (String) getValue(value);
                  properties.put(attrKey, value);
              }
          }
  
          if (properties.isEmpty() || properties.size() != attrKeys.length) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  //TODO: NLS warning msg
                  Tr.debug(tc, "The authFilter element " + elementName + " specified in the server.xml file is missing one or more of these attributes "
                               + printAttrKeys(attrKeys));
              }
              return null;
          } else
              return properties;
      }
docs: Get properties from the given element and/or it's subElements.
  Ignore system generated props, add the user props to the given Properties object
  
  @param configProps props from the config
  @param elementName the element being processed