private void initSpnego(Configuration conf, String hostName, String usernameConfKey,
    String keytabConfKey, String kerberosNameRuleKey, String signatureSecretKeyFileKey)
    throws IOException {
    Map<String, String> params = new HashMap<>();
    String principalInConf = getOrEmptyString(conf, usernameConfKey);
    if (!principalInConf.isEmpty()) {
      params.put(HTTP_SPNEGO_AUTHENTICATION_PRINCIPAL_SUFFIX,
        SecurityUtil.getServerPrincipal(principalInConf, hostName));
    }
    String httpKeytab = getOrEmptyString(conf, keytabConfKey);
    if (!httpKeytab.isEmpty()) {
      params.put(HTTP_SPNEGO_AUTHENTICATION_KEYTAB_SUFFIX, httpKeytab);
    }
    String kerberosNameRule = getOrEmptyString(conf, kerberosNameRuleKey);
    if (!kerberosNameRule.isEmpty()) {
      params.put(HTTP_SPNEGO_AUTHENTICATION_KRB_NAME_SUFFIX, kerberosNameRule);
    }
    String signatureSecretKeyFile = getOrEmptyString(conf, signatureSecretKeyFileKey);
    if (!signatureSecretKeyFile.isEmpty()) {
      params.put(HTTP_AUTHENTICATION_SIGNATURE_SECRET_FILE_SUFFIX, signatureSecretKeyFile);
    }
    params.put(AuthenticationFilter.AUTH_TYPE, "kerberos");

    // Verify that the required options were provided
    if (
      isMissing(params.get(HTTP_SPNEGO_AUTHENTICATION_PRINCIPAL_SUFFIX))
        || isMissing(params.get(HTTP_SPNEGO_AUTHENTICATION_KEYTAB_SUFFIX))
    ) {
      throw new IllegalArgumentException(
        usernameConfKey + " and " + keytabConfKey + " are both required in the configuration "
          + "to enable SPNEGO/Kerberos authentication for the Web UI");
    }

    if (
      conf.getBoolean(HTTP_SPNEGO_AUTHENTICATION_PROXYUSER_ENABLE_KEY,
        HTTP_SPNEGO_AUTHENTICATION_PROXYUSER_ENABLE_DEFAULT)
    ) {
      // Copy/rename standard hadoop proxyuser settings to filter
      for (Map.Entry<String, String> proxyEntry : conf
        .getPropsWithPrefix(ProxyUsers.CONF_HADOOP_PROXYUSER).entrySet()) {
        params.put(ProxyUserAuthenticationFilter.PROXYUSER_PREFIX + proxyEntry.getKey(),
          proxyEntry.getValue());
      }
      addGlobalFilter(SPNEGO_PROXYUSER_FILTER, ProxyUserAuthenticationFilter.class.getName(),
        params);
    } else {
      addGlobalFilter(SPNEGO_FILTER, AuthenticationFilter.class.getName(), params);
    }
  }
Set the min, max number of worker threads (simultaneous connections).
hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java