This is an automated email from the ASF dual-hosted git repository. stoty pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/phoenix-queryserver.git
The following commit(s) were added to refs/heads/master by this push: new a34ac99 PHOENIX-5777 Unify the queryserver config keys to use QueryServerProperties a34ac99 is described below commit a34ac99232a92b869e2195f4975826d2e37ee3c4 Author: Guanghao Zhang <zg...@apache.org> AuthorDate: Mon Mar 16 11:47:20 2020 +0800 PHOENIX-5777 Unify the queryserver config keys to use QueryServerProperties Closes #21 --- .../apache/phoenix/end2end/QueryServerEnvironment.java | 16 +++++++++------- .../phoenix/end2end/SecureQueryServerPhoenixDBIT.java | 13 ++++++++----- .../server/PhoenixRemoteUserExtractorTest.java | 16 +++++++--------- .../queryserver/server/QueryServerConfigurationTest.java | 13 +++++++++---- .../phoenix/queryserver/server/QueryServerTest.java | 10 +++++----- 5 files changed, 38 insertions(+), 30 deletions(-) diff --git a/queryserver/src/it/java/org/apache/phoenix/end2end/QueryServerEnvironment.java b/queryserver/src/it/java/org/apache/phoenix/end2end/QueryServerEnvironment.java index 165e643..537d5a5 100644 --- a/queryserver/src/it/java/org/apache/phoenix/end2end/QueryServerEnvironment.java +++ b/queryserver/src/it/java/org/apache/phoenix/end2end/QueryServerEnvironment.java @@ -43,7 +43,6 @@ import org.apache.hadoop.minikdc.MiniKdc; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.authentication.util.KerberosName; import org.apache.phoenix.query.ConfigurationFactory; -import org.apache.phoenix.query.QueryServices; import org.apache.phoenix.queryserver.QueryServerProperties; import org.apache.phoenix.queryserver.client.ThinClientUtil; import org.apache.phoenix.queryserver.server.QueryServer; @@ -249,13 +248,16 @@ public class QueryServerEnvironment { } // Secure Phoenix setup - conf.set("phoenix.queryserver.kerberos.http.principal", + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB_LEGACY, SPNEGO_PRINCIPAL + "@" + KDC.getRealm()); - conf.set("phoenix.queryserver.http.keytab.file", KEYTAB.getAbsolutePath()); - conf.set("phoenix.queryserver.kerberos.principal", PQS_PRINCIPAL + "@" + KDC.getRealm()); - conf.set("phoenix.queryserver.keytab.file", KEYTAB.getAbsolutePath()); - conf.setBoolean(QueryServices.QUERY_SERVER_DISABLE_KERBEROS_LOGIN, true); - conf.setInt(QueryServices.QUERY_SERVER_HTTP_PORT_ATTRIB, 0); + conf.set(QueryServerProperties.QUERY_SERVER_HTTP_KEYTAB_FILENAME_ATTRIB, + KEYTAB.getAbsolutePath()); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_PRINCIPAL_ATTRIB, + PQS_PRINCIPAL + "@" + KDC.getRealm()); + conf.set(QueryServerProperties.QUERY_SERVER_KEYTAB_FILENAME_ATTRIB, + KEYTAB.getAbsolutePath()); + conf.setBoolean(QueryServerProperties.QUERY_SERVER_DISABLE_KERBEROS_LOGIN, true); + conf.setInt(QueryServerProperties.QUERY_SERVER_HTTP_PORT_ATTRIB, 0); // Required so that PQS can impersonate the end-users to HBase conf.set("hadoop.proxyuser.phoenixqs.groups", "*"); conf.set("hadoop.proxyuser.phoenixqs.hosts", "*"); diff --git a/queryserver/src/it/java/org/apache/phoenix/end2end/SecureQueryServerPhoenixDBIT.java b/queryserver/src/it/java/org/apache/phoenix/end2end/SecureQueryServerPhoenixDBIT.java index 19789b8..b99693a 100644 --- a/queryserver/src/it/java/org/apache/phoenix/end2end/SecureQueryServerPhoenixDBIT.java +++ b/queryserver/src/it/java/org/apache/phoenix/end2end/SecureQueryServerPhoenixDBIT.java @@ -53,7 +53,6 @@ import org.apache.hadoop.minikdc.MiniKdc; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.authentication.util.KerberosName; import org.apache.phoenix.query.ConfigurationFactory; -import org.apache.phoenix.query.QueryServices; import org.apache.phoenix.queryserver.QueryServerProperties; import org.apache.phoenix.queryserver.client.ThinClientUtil; import org.apache.phoenix.queryserver.server.QueryServer; @@ -231,10 +230,14 @@ public class SecureQueryServerPhoenixDBIT { TokenProvider.class.getName()); // Secure Phoenix setup - conf.set("phoenix.queryserver.kerberos.http.principal", SPNEGO_PRINCIPAL + "@" + KDC.getRealm()); - conf.set("phoenix.queryserver.http.keytab.file", KEYTAB.getAbsolutePath()); - conf.set("phoenix.queryserver.kerberos.principal", PQS_PRINCIPAL + "@" + KDC.getRealm()); - conf.set("phoenix.queryserver.keytab.file", KEYTAB.getAbsolutePath()); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB_LEGACY, + SPNEGO_PRINCIPAL + "@" + KDC.getRealm()); + conf.set(QueryServerProperties.QUERY_SERVER_HTTP_KEYTAB_FILENAME_ATTRIB, + KEYTAB.getAbsolutePath()); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_PRINCIPAL_ATTRIB, + PQS_PRINCIPAL + "@" + KDC.getRealm()); + conf.set(QueryServerProperties.QUERY_SERVER_KEYTAB_FILENAME_ATTRIB, + KEYTAB.getAbsolutePath()); conf.setBoolean(QueryServerProperties.QUERY_SERVER_DISABLE_KERBEROS_LOGIN, true); conf.setInt(QueryServerProperties.QUERY_SERVER_HTTP_PORT_ATTRIB, 0); // Required so that PQS can impersonate the end-users to HBase diff --git a/queryserver/src/test/java/org/apache/phoenix/queryserver/server/PhoenixRemoteUserExtractorTest.java b/queryserver/src/test/java/org/apache/phoenix/queryserver/server/PhoenixRemoteUserExtractorTest.java index 9351989..6aaeb5b 100644 --- a/queryserver/src/test/java/org/apache/phoenix/queryserver/server/PhoenixRemoteUserExtractorTest.java +++ b/queryserver/src/test/java/org/apache/phoenix/queryserver/server/PhoenixRemoteUserExtractorTest.java @@ -17,26 +17,24 @@ package org.apache.phoenix.queryserver.server; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.mockito.Mockito.any; +import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import javax.servlet.http.HttpServletRequest; + import org.apache.calcite.avatica.server.HttpServer; import org.apache.calcite.avatica.server.RemoteUserExtractionException; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.security.UserGroupInformation; -import org.apache.hadoop.security.authorize.AuthorizationException; import org.apache.hadoop.security.authorize.ProxyUsers; +import org.apache.phoenix.queryserver.QueryServerProperties; import org.apache.phoenix.queryserver.server.QueryServer.PhoenixRemoteUserExtractor; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.http.HttpServletRequest; - /** * Tests for the RemoteUserExtractor Method Avatica provides for Phoenix to implement. */ @@ -53,7 +51,7 @@ public class PhoenixRemoteUserExtractorTest { Configuration conf = new Configuration(false); conf.set("hadoop.proxyuser.proxyserver.groups", "*"); conf.set("hadoop.proxyuser.proxyserver.hosts", "*"); - conf.set("phoenix.queryserver.withRemoteUserExtractor", "true"); + conf.set(QueryServerProperties.QUERY_SERVER_WITH_REMOTEUSEREXTRACTOR_ATTRIB, "true"); ProxyUsers.refreshSuperUserGroupsConfiguration(conf); PhoenixRemoteUserExtractor extractor = new PhoenixRemoteUserExtractor(conf); @@ -73,7 +71,7 @@ public class PhoenixRemoteUserExtractorTest { Configuration conf = new Configuration(false); conf.set("hadoop.proxyuser.proxyserver.groups", "*"); conf.set("hadoop.proxyuser.proxyserver.hosts", "*"); - conf.set("phoenix.queryserver.withRemoteUserExtractor", "true"); + conf.set(QueryServerProperties.QUERY_SERVER_WITH_REMOTEUSEREXTRACTOR_ATTRIB, "true"); ProxyUsers.refreshSuperUserGroupsConfiguration(conf); PhoenixRemoteUserExtractor extractor = new PhoenixRemoteUserExtractor(conf); @@ -99,7 +97,7 @@ public class PhoenixRemoteUserExtractorTest { HttpServer.Builder builder = mock(HttpServer.Builder.class); Configuration conf = new Configuration(false); - conf.set("phoenix.queryserver.withRemoteUserExtractor", "true"); + conf.set(QueryServerProperties.QUERY_SERVER_WITH_REMOTEUSEREXTRACTOR_ATTRIB, "true"); QueryServer queryServer = new QueryServer(); queryServer.setRemoteUserExtractorIfNecessary(builder, conf); verify(builder).withRemoteUserExtractor(any(PhoenixRemoteUserExtractor.class)); diff --git a/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerConfigurationTest.java b/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerConfigurationTest.java index d01d2ea..099a55a 100644 --- a/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerConfigurationTest.java +++ b/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerConfigurationTest.java @@ -17,6 +17,13 @@ */ package org.apache.phoenix.queryserver.server; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + import java.io.File; import java.io.IOException; @@ -26,14 +33,12 @@ import org.apache.calcite.avatica.server.HttpServer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.security.UserGroupInformation; -import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.queryserver.QueryServerProperties; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import static org.mockito.Mockito.*; - public class QueryServerConfigurationTest { private static final Configuration CONF = HBaseConfiguration.create(); @@ -81,7 +86,7 @@ public class QueryServerConfigurationTest { private void setupKeytabForSpnego() throws IOException { File keytabFile = testFolder.newFile("test.keytab"); - CONF.set(QueryServices.QUERY_SERVER_KEYTAB_FILENAME_ATTRIB, keytabFile.getAbsolutePath()); + CONF.set(QueryServerProperties.QUERY_SERVER_KEYTAB_FILENAME_ATTRIB, keytabFile.getAbsolutePath()); } private void configureAndVerifyImpersonation(HttpServer.Builder builder, boolean disableSpnego) diff --git a/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerTest.java b/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerTest.java index 243e713..bf6acff 100644 --- a/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerTest.java +++ b/queryserver/src/test/java/org/apache/phoenix/queryserver/server/QueryServerTest.java @@ -23,7 +23,7 @@ import java.io.IOException; import java.net.InetAddress; import org.apache.hadoop.conf.Configuration; -import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.queryserver.QueryServerProperties; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -51,23 +51,23 @@ public class QueryServerTest { @Test public void testHostExpansion() throws IOException { - conf.set(QueryServices.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB, getSpnegoPrincipal("_HOST")); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB, getSpnegoPrincipal("_HOST")); assertEquals(getSpnegoPrincipal(EXPECTED_HOSTNAME), qs.getSpnegoPrincipal(conf)); } @Test public void testHostExpansionWithOldName() throws IOException { - conf.set(QueryServices.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB_LEGACY, getSpnegoPrincipal("_HOST")); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB_LEGACY, getSpnegoPrincipal("_HOST")); assertEquals(getSpnegoPrincipal(EXPECTED_HOSTNAME), qs.getSpnegoPrincipal(conf)); } @Test public void testHostExpansionWithOldAndNewNames() throws IOException { - conf.set(QueryServices.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB, getSpnegoPrincipal("_HOST")); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB, getSpnegoPrincipal("_HOST")); // When we provide both names, the new property should take priority - conf.set(QueryServices.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB_LEGACY, "fake_" + getSpnegoPrincipal("_HOST")); + conf.set(QueryServerProperties.QUERY_SERVER_KERBEROS_HTTP_PRINCIPAL_ATTRIB_LEGACY, "fake_" + getSpnegoPrincipal("_HOST")); assertEquals(getSpnegoPrincipal(EXPECTED_HOSTNAME), qs.getSpnegoPrincipal(conf)); }