void configureSpnegoAuthentication()

in phoenix-queryserver/src/main/java/org/apache/phoenix/queryserver/server/QueryServer.java [315:337]


  void configureSpnegoAuthentication(HttpServer.Builder builder, UserGroupInformation ugi) throws IOException {
    String keytabPath = getConf().get(QueryServerProperties.QUERY_SERVER_KEYTAB_FILENAME_ATTRIB);
    File keytab = new File(keytabPath);
    String httpKeytabPath =
            getConf().get(QueryServerProperties.QUERY_SERVER_HTTP_KEYTAB_FILENAME_ATTRIB, null);
    String httpPrincipal = getSpnegoPrincipal(getConf());
    File httpKeytab = null;
    if (null != httpKeytabPath) {
        httpKeytab = new File(httpKeytabPath);
    }

    String realmsString = getConf().get(QueryServerProperties.QUERY_SERVER_KERBEROS_ALLOWED_REALMS, null);
    String[] additionalAllowedRealms = null;
    if (null != realmsString) {
      additionalAllowedRealms = StringUtils.split(realmsString, ',');
    }
    if (null != httpKeytabPath && null != httpPrincipal) {
      builder.withSpnego(httpPrincipal, additionalAllowedRealms).withAutomaticLogin(httpKeytab);
    } else {
      builder.withSpnego(ugi.getUserName(), additionalAllowedRealms)
              .withAutomaticLogin(keytab);
    }
  }