Repository: hadoop Updated Branches: refs/heads/trunk 77d5ce906 -> a6c79f92d
http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java index 50d389c..c4dbcac 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java @@ -17,40 +17,35 @@ */ package org.apache.hadoop.security; -import java.io.IOException; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.NetworkInterface; -import java.security.PrivilegedExceptionAction; -import java.util.ArrayList; -import java.util.Enumeration; - -import org.junit.Assert; - +import com.google.protobuf.ServiceException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.io.Text; -import org.apache.hadoop.ipc.ProtocolSignature; +import org.apache.hadoop.ipc.ProtobufRpcEngine; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.ipc.Server; -import org.apache.hadoop.ipc.VersionedProtocol; -import org.apache.hadoop.net.NetUtils; +import org.apache.hadoop.ipc.TestRpcBase; import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod; import org.apache.hadoop.security.authorize.DefaultImpersonationProvider; import org.apache.hadoop.security.authorize.ProxyUsers; import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.security.token.TokenInfo; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.apache.hadoop.ipc.TestRpcBase.TestTokenSecretManager; -import org.apache.hadoop.ipc.TestRpcBase.TestTokenIdentifier; -import org.apache.hadoop.ipc.TestRpcBase.TestTokenSelector; -import org.apache.commons.logging.*; -import org.apache.hadoop.fs.CommonConfigurationKeysPublic; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.security.PrivilegedExceptionAction; +import java.util.ArrayList; +import java.util.Enumeration; /** - * + * Test do as effective user. */ -public class TestDoAsEffectiveUser { +public class TestDoAsEffectiveUser extends TestRpcBase { final private static String REAL_USER_NAME = "realus...@hadoop.apache.org"; final private static String REAL_USER_SHORT_NAME = "realUser1"; final private static String PROXY_USER_NAME = "proxyUser"; @@ -58,8 +53,8 @@ public class TestDoAsEffectiveUser { final private static String GROUP2_NAME = "group2"; final private static String[] GROUP_NAMES = new String[] { GROUP1_NAME, GROUP2_NAME }; - private static final String ADDRESS = "0.0.0.0"; - private TestProtocol proxy; + + private TestRpcService client; private static final Configuration masterConf = new Configuration(); @@ -82,7 +77,7 @@ public class TestDoAsEffectiveUser { private void configureSuperUserIPAddresses(Configuration conf, String superUserShortName) throws IOException { - ArrayList<String> ipList = new ArrayList<String>(); + ArrayList<String> ipList = new ArrayList<>(); Enumeration<NetworkInterface> netInterfaceList = NetworkInterface .getNetworkInterfaces(); while (netInterfaceList.hasMoreElements()) { @@ -130,50 +125,19 @@ public class TestDoAsEffectiveUser { curUGI.toString()); } - @TokenInfo(TestTokenSelector.class) - public interface TestProtocol extends VersionedProtocol { - public static final long versionID = 1L; - - String aMethod() throws IOException; - String getServerRemoteUser() throws IOException; - } - - public class TestImpl implements TestProtocol { - - @Override - public String aMethod() throws IOException { - return UserGroupInformation.getCurrentUser().toString(); - } - - @Override - public String getServerRemoteUser() throws IOException { - return Server.getRemoteUser().toString(); - } - - @Override - public long getProtocolVersion(String protocol, long clientVersion) - throws IOException { - return TestProtocol.versionID; - } - - @Override - public ProtocolSignature getProtocolSignature(String protocol, - long clientVersion, int clientMethodsHash) throws IOException { - return new ProtocolSignature(TestProtocol.versionID, null); - } - } - - private void checkRemoteUgi(final Server server, - final UserGroupInformation ugi, final Configuration conf) - throws Exception { + private void checkRemoteUgi(final UserGroupInformation ugi, + final Configuration conf) throws Exception { ugi.doAs(new PrivilegedExceptionAction<Void>() { @Override - public Void run() throws IOException { - proxy = RPC.getProxy( - TestProtocol.class, TestProtocol.versionID, - NetUtils.getConnectAddress(server), conf); - Assert.assertEquals(ugi.toString(), proxy.aMethod()); - Assert.assertEquals(ugi.toString(), proxy.getServerRemoteUser()); + public Void run() throws ServiceException { + client = getClient(addr, conf); + String currentUser = client.getCurrentUser(null, + newEmptyRequest()).getUser(); + String serverRemoteUser = client.getServerRemoteUser(null, + newEmptyRequest()).getUser(); + + Assert.assertEquals(ugi.toString(), currentUser); + Assert.assertEquals(ugi.toString(), serverRemoteUser); return null; } }); @@ -185,29 +149,27 @@ public class TestDoAsEffectiveUser { conf.setStrings(DefaultImpersonationProvider.getTestProvider(). getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group1"); configureSuperUserIPAddresses(conf, REAL_USER_SHORT_NAME); - Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(5).setVerbose(true).build(); + // Set RPC engine to protobuf RPC engine + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); + UserGroupInformation.setConfiguration(conf); + final Server server = setupTestServer(conf, 5); refreshConf(conf); try { - server.start(); - UserGroupInformation realUserUgi = UserGroupInformation .createRemoteUser(REAL_USER_NAME); - checkRemoteUgi(server, realUserUgi, conf); + checkRemoteUgi(realUserUgi, conf); - UserGroupInformation proxyUserUgi = UserGroupInformation.createProxyUserForTesting( + UserGroupInformation proxyUserUgi = + UserGroupInformation.createProxyUserForTesting( PROXY_USER_NAME, realUserUgi, GROUP_NAMES); - checkRemoteUgi(server, proxyUserUgi, conf); + checkRemoteUgi(proxyUserUgi, conf); } catch (Exception e) { e.printStackTrace(); Assert.fail(); } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } @@ -218,29 +180,25 @@ public class TestDoAsEffectiveUser { conf.setStrings(DefaultImpersonationProvider.getTestProvider(). getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group1"); - Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(2).setVerbose(false).build(); + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); + UserGroupInformation.setConfiguration(conf); + final Server server = setupTestServer(conf, 5); refreshConf(conf); try { - server.start(); - UserGroupInformation realUserUgi = UserGroupInformation .createRemoteUser(REAL_USER_NAME); - checkRemoteUgi(server, realUserUgi, conf); + checkRemoteUgi(realUserUgi, conf); UserGroupInformation proxyUserUgi = UserGroupInformation .createProxyUserForTesting(PROXY_USER_NAME, realUserUgi, GROUP_NAMES); - checkRemoteUgi(server, proxyUserUgi, conf); + checkRemoteUgi(proxyUserUgi, conf); } catch (Exception e) { e.printStackTrace(); Assert.fail(); } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } @@ -256,17 +214,14 @@ public class TestDoAsEffectiveUser { conf.setStrings(DefaultImpersonationProvider.getTestProvider(). getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group1"); - Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(2).setVerbose(false).build(); + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); + UserGroupInformation.setConfiguration(conf); + final Server server = setupTestServer(conf, 5); refreshConf(conf); try { - server.start(); - - final InetSocketAddress addr = NetUtils.getConnectAddress(server); - UserGroupInformation realUserUgi = UserGroupInformation .createRemoteUser(REAL_USER_NAME); @@ -275,11 +230,10 @@ public class TestDoAsEffectiveUser { String retVal = proxyUserUgi .doAs(new PrivilegedExceptionAction<String>() { @Override - public String run() throws IOException { - proxy = RPC.getProxy(TestProtocol.class, - TestProtocol.versionID, addr, conf); - String ret = proxy.aMethod(); - return ret; + public String run() throws ServiceException { + client = getClient(addr, conf); + return client.getCurrentUser(null, + newEmptyRequest()).getUser(); } }); @@ -287,10 +241,7 @@ public class TestDoAsEffectiveUser { } catch (Exception e) { e.printStackTrace(); } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } @@ -299,17 +250,14 @@ public class TestDoAsEffectiveUser { final Configuration conf = new Configuration(); conf.setStrings(DefaultImpersonationProvider.getTestProvider(). getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group1"); - Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(2).setVerbose(false).build(); + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); + UserGroupInformation.setConfiguration(conf); + final Server server = setupTestServer(conf, 2); refreshConf(conf); try { - server.start(); - - final InetSocketAddress addr = NetUtils.getConnectAddress(server); - UserGroupInformation realUserUgi = UserGroupInformation .createRemoteUser(REAL_USER_NAME); @@ -318,11 +266,10 @@ public class TestDoAsEffectiveUser { String retVal = proxyUserUgi .doAs(new PrivilegedExceptionAction<String>() { @Override - public String run() throws IOException { - proxy = RPC.getProxy(TestProtocol.class, - TestProtocol.versionID, addr, conf); - String ret = proxy.aMethod(); - return ret; + public String run() throws ServiceException { + client = getClient(addr, conf); + return client.getCurrentUser(null, + newEmptyRequest()).getUser(); } }); @@ -330,10 +277,7 @@ public class TestDoAsEffectiveUser { } catch (Exception e) { e.printStackTrace(); } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } @@ -341,15 +285,12 @@ public class TestDoAsEffectiveUser { public void testRealUserGroupNotSpecified() throws IOException { final Configuration conf = new Configuration(); configureSuperUserIPAddresses(conf, REAL_USER_SHORT_NAME); - Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(2).setVerbose(false).build(); + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); + UserGroupInformation.setConfiguration(conf); + final Server server = setupTestServer(conf, 2); try { - server.start(); - - final InetSocketAddress addr = NetUtils.getConnectAddress(server); - UserGroupInformation realUserUgi = UserGroupInformation .createRemoteUser(REAL_USER_NAME); @@ -358,11 +299,10 @@ public class TestDoAsEffectiveUser { String retVal = proxyUserUgi .doAs(new PrivilegedExceptionAction<String>() { @Override - public String run() throws IOException { - proxy = (TestProtocol) RPC.getProxy(TestProtocol.class, - TestProtocol.versionID, addr, conf); - String ret = proxy.aMethod(); - return ret; + public String run() throws ServiceException { + client = getClient(addr, conf); + return client.getCurrentUser(null, + newEmptyRequest()).getUser(); } }); @@ -370,10 +310,7 @@ public class TestDoAsEffectiveUser { } catch (Exception e) { e.printStackTrace(); } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } @@ -384,17 +321,14 @@ public class TestDoAsEffectiveUser { conf.setStrings(DefaultImpersonationProvider.getTestProvider(). getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group3"); - Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(2).setVerbose(false).build(); + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); + UserGroupInformation.setConfiguration(conf); + final Server server = setupTestServer(conf, 2); refreshConf(conf); try { - server.start(); - - final InetSocketAddress addr = NetUtils.getConnectAddress(server); - UserGroupInformation realUserUgi = UserGroupInformation .createRemoteUser(REAL_USER_NAME); @@ -403,11 +337,10 @@ public class TestDoAsEffectiveUser { String retVal = proxyUserUgi .doAs(new PrivilegedExceptionAction<String>() { @Override - public String run() throws IOException { - proxy = RPC.getProxy(TestProtocol.class, - TestProtocol.versionID, addr, conf); - String ret = proxy.aMethod(); - return ret; + public String run() throws ServiceException { + client = getClient(addr, conf); + return client.getCurrentUser(null, + newEmptyRequest()).getUser(); } }); @@ -415,10 +348,7 @@ public class TestDoAsEffectiveUser { } catch (Exception e) { e.printStackTrace(); } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } @@ -432,20 +362,17 @@ public class TestDoAsEffectiveUser { final Configuration conf = new Configuration(masterConf); TestTokenSecretManager sm = new TestTokenSecretManager(); SecurityUtil.setAuthenticationMethod(AuthenticationMethod.KERBEROS, conf); + RPC.setProtocolEngine(conf, TestRpcService.class, + ProtobufRpcEngine.class); UserGroupInformation.setConfiguration(conf); - final Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class) - .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0) - .setNumHandlers(5).setVerbose(true).setSecretManager(sm).build(); - - server.start(); + final Server server = setupTestServer(conf, 5, sm); final UserGroupInformation current = UserGroupInformation .createRemoteUser(REAL_USER_NAME); - - final InetSocketAddress addr = NetUtils.getConnectAddress(server); + TestTokenIdentifier tokenId = new TestTokenIdentifier(new Text(current .getUserName()), new Text("SomeSuperUser")); - Token<TestTokenIdentifier> token = new Token<TestTokenIdentifier>(tokenId, + Token<TestTokenIdentifier> token = new Token<>(tokenId, sm); SecurityUtil.setTokenService(token, addr); UserGroupInformation proxyUserUgi = UserGroupInformation @@ -453,23 +380,19 @@ public class TestDoAsEffectiveUser { proxyUserUgi.addToken(token); refreshConf(conf); - + String retVal = proxyUserUgi.doAs(new PrivilegedExceptionAction<String>() { @Override public String run() throws Exception { try { - proxy = RPC.getProxy(TestProtocol.class, - TestProtocol.versionID, addr, conf); - String ret = proxy.aMethod(); - return ret; + client = getClient(addr, conf); + return client.getCurrentUser(null, + newEmptyRequest()).getUser(); } catch (Exception e) { e.printStackTrace(); throw e; } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } }); @@ -486,42 +409,34 @@ public class TestDoAsEffectiveUser { TestTokenSecretManager sm = new TestTokenSecretManager(); final Configuration newConf = new Configuration(masterConf); SecurityUtil.setAuthenticationMethod(AuthenticationMethod.KERBEROS, newConf); + // Set RPC engine to protobuf RPC engine + RPC.setProtocolEngine(newConf, TestRpcService.class, + ProtobufRpcEngine.class); UserGroupInformation.setConfiguration(newConf); - final Server server = new RPC.Builder(newConf) - .setProtocol(TestProtocol.class).setInstance(new TestImpl()) - .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true) - .setSecretManager(sm).build(); - - server.start(); + final Server server = setupTestServer(newConf, 5, sm); final UserGroupInformation current = UserGroupInformation .createUserForTesting(REAL_USER_NAME, GROUP_NAMES); refreshConf(newConf); - - final InetSocketAddress addr = NetUtils.getConnectAddress(server); + TestTokenIdentifier tokenId = new TestTokenIdentifier(new Text(current .getUserName()), new Text("SomeSuperUser")); - Token<TestTokenIdentifier> token = new Token<TestTokenIdentifier>(tokenId, - sm); + Token<TestTokenIdentifier> token = new Token<>(tokenId, sm); SecurityUtil.setTokenService(token, addr); current.addToken(token); String retVal = current.doAs(new PrivilegedExceptionAction<String>() { @Override public String run() throws Exception { try { - proxy = RPC.getProxy(TestProtocol.class, - TestProtocol.versionID, addr, newConf); - String ret = proxy.aMethod(); - return ret; + client = getClient(addr, newConf); + return client.getCurrentUser(null, + newEmptyRequest()).getUser(); } catch (Exception e) { e.printStackTrace(); throw e; } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } + stop(server, client); } } }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java index 91f36e5..462f0a4 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java @@ -20,6 +20,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; +import org.apache.hadoop.ipc.TestRpcBase.TestTokenIdentifier; import org.apache.hadoop.metrics2.MetricsRecordBuilder; import org.apache.hadoop.security.SaslRpcServer.AuthMethod; import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod; @@ -28,7 +29,11 @@ import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.TokenIdentifier; import org.apache.hadoop.util.Shell; import org.apache.hadoop.util.StringUtils; -import org.junit.*; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosPrincipal; @@ -48,9 +53,22 @@ import java.util.Set; import static org.apache.hadoop.fs.CommonConfigurationKeys.HADOOP_USER_GROUP_METRICS_PERCENTILES_INTERVALS; import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTH_TO_LOCAL; -import static org.apache.hadoop.ipc.TestSaslRPC.*; -import static org.apache.hadoop.test.MetricsAsserts.*; -import static org.junit.Assert.*; +import static org.apache.hadoop.test.MetricsAsserts.assertCounter; +import static org.apache.hadoop.test.MetricsAsserts.assertCounterGt; +import static org.apache.hadoop.test.MetricsAsserts.assertGaugeGt; +import static org.apache.hadoop.test.MetricsAsserts.assertQuantileGauges; +import static org.apache.hadoop.test.MetricsAsserts.getDoubleGauge; +import static org.apache.hadoop.test.MetricsAsserts.getMetrics; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -107,7 +125,7 @@ public class TestUserGroupInformation { UserGroupInformation.setLoginUser(null); } - @Test (timeout = 30000) + @Test(timeout = 30000) public void testSimpleLogin() throws IOException { tryLoginAuthenticationMethod(AuthenticationMethod.SIMPLE, true); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-common-project/hadoop-common/src/test/proto/test.proto ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/proto/test.proto b/hadoop-common-project/hadoop-common/src/test/proto/test.proto index 99cd93d..6411f97 100644 --- a/hadoop-common-project/hadoop-common/src/test/proto/test.proto +++ b/hadoop-common-project/hadoop-common/src/test/proto/test.proto @@ -88,6 +88,6 @@ message AuthMethodResponseProto { required string mechanismName = 2; } -message AuthUserResponseProto { - required string authUser = 1; +message UserResponseProto { + required string user = 1; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-common-project/hadoop-common/src/test/proto/test_rpc_service.proto ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/proto/test_rpc_service.proto b/hadoop-common-project/hadoop-common/src/test/proto/test_rpc_service.proto index 3292115..06f6c4f 100644 --- a/hadoop-common-project/hadoop-common/src/test/proto/test_rpc_service.proto +++ b/hadoop-common-project/hadoop-common/src/test/proto/test_rpc_service.proto @@ -40,9 +40,11 @@ service TestProtobufRpcProto { rpc exchange(ExchangeRequestProto) returns (ExchangeResponseProto); rpc sleep(SleepRequestProto) returns (EmptyResponseProto); rpc getAuthMethod(EmptyRequestProto) returns (AuthMethodResponseProto); - rpc getAuthUser(EmptyRequestProto) returns (AuthUserResponseProto); + rpc getAuthUser(EmptyRequestProto) returns (UserResponseProto); rpc echoPostponed(EchoRequestProto) returns (EchoResponseProto); rpc sendPostponed(EmptyRequestProto) returns (EmptyResponseProto); + rpc getCurrentUser(EmptyRequestProto) returns (UserResponseProto); + rpc getServerRemoteUser(EmptyRequestProto) returns (UserResponseProto); } service TestProtobufRpc2Proto { http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java index 6b52949..57f7cb1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java @@ -168,7 +168,6 @@ import org.apache.hadoop.ipc.RetryCache.CacheEntry; import org.apache.hadoop.ipc.RetryCache.CacheEntryWithPayload; import org.apache.hadoop.ipc.Server; import org.apache.hadoop.ipc.StandbyException; -import org.apache.hadoop.ipc.WritableRpcEngine; import org.apache.hadoop.ipc.RefreshRegistry; import org.apache.hadoop.ipc.RefreshResponse; import org.apache.hadoop.net.Node; @@ -317,8 +316,6 @@ public class NameNodeRpcServer implements NamenodeProtocols { new TraceAdminProtocolServerSideTranslatorPB(this); BlockingService traceAdminService = TraceAdminService .newReflectiveBlockingService(traceAdminXlator); - - WritableRpcEngine.ensureInitialized(); InetSocketAddress serviceRpcAddr = nn.getServiceRpcServerAddress(conf); if (serviceRpcAddr != null) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/security/TestClientProtocolWithDelegationToken.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/security/TestClientProtocolWithDelegationToken.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/security/TestClientProtocolWithDelegationToken.java deleted file mode 100644 index 0b7ee33..0000000 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/security/TestClientProtocolWithDelegationToken.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.hdfs.security; - -import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION; -import static org.mockito.Mockito.mock; - -import java.net.InetSocketAddress; -import java.security.PrivilegedExceptionAction; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hdfs.DFSConfigKeys; -import org.apache.hadoop.hdfs.protocol.ClientProtocol; -import org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenIdentifier; -import org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenSecretManager; -import org.apache.hadoop.hdfs.server.namenode.FSNamesystem; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.ipc.Client; -import org.apache.hadoop.ipc.RPC; -import org.apache.hadoop.ipc.Server; -import org.apache.hadoop.net.NetUtils; -import org.apache.hadoop.security.SaslInputStream; -import org.apache.hadoop.security.SaslRpcClient; -import org.apache.hadoop.security.SaslRpcServer; -import org.apache.hadoop.security.SecurityUtil; -import org.apache.hadoop.security.UserGroupInformation; -import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.test.GenericTestUtils; -import org.apache.log4j.Level; -import org.junit.Test; - -/** Unit tests for using Delegation Token over RPC. */ -public class TestClientProtocolWithDelegationToken { - private static final String ADDRESS = "0.0.0.0"; - - public static final Log LOG = LogFactory - .getLog(TestClientProtocolWithDelegationToken.class); - - private static final Configuration conf; - static { - conf = new Configuration(); - conf.set(HADOOP_SECURITY_AUTHENTICATION, "kerberos"); - UserGroupInformation.setConfiguration(conf); - } - - static { - GenericTestUtils.setLogLevel(Client.LOG, Level.ALL); - GenericTestUtils.setLogLevel(Server.LOG, Level.ALL); - GenericTestUtils.setLogLevel(SaslRpcClient.LOG, Level.ALL); - GenericTestUtils.setLogLevel(SaslRpcServer.LOG, Level.ALL); - GenericTestUtils.setLogLevel(SaslInputStream.LOG, Level.ALL); - } - - @Test - public void testDelegationTokenRpc() throws Exception { - ClientProtocol mockNN = mock(ClientProtocol.class); - FSNamesystem mockNameSys = mock(FSNamesystem.class); - - DelegationTokenSecretManager sm = new DelegationTokenSecretManager( - DFSConfigKeys.DFS_NAMENODE_DELEGATION_KEY_UPDATE_INTERVAL_DEFAULT, - DFSConfigKeys.DFS_NAMENODE_DELEGATION_KEY_UPDATE_INTERVAL_DEFAULT, - DFSConfigKeys.DFS_NAMENODE_DELEGATION_TOKEN_MAX_LIFETIME_DEFAULT, - 3600000, mockNameSys); - sm.startThreads(); - final Server server = new RPC.Builder(conf) - .setProtocol(ClientProtocol.class).setInstance(mockNN) - .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true) - .setSecretManager(sm).build(); - - server.start(); - - final UserGroupInformation current = UserGroupInformation.getCurrentUser(); - final InetSocketAddress addr = NetUtils.getConnectAddress(server); - String user = current.getUserName(); - Text owner = new Text(user); - DelegationTokenIdentifier dtId = new DelegationTokenIdentifier(owner, owner, null); - Token<DelegationTokenIdentifier> token = new Token<DelegationTokenIdentifier>( - dtId, sm); - SecurityUtil.setTokenService(token, addr); - LOG.info("Service for token is " + token.getService()); - current.addToken(token); - current.doAs(new PrivilegedExceptionAction<Object>() { - @Override - public Object run() throws Exception { - ClientProtocol proxy = null; - try { - proxy = RPC.getProxy(ClientProtocol.class, - ClientProtocol.versionID, addr, conf); - proxy.getServerDefaults(); - } finally { - server.stop(); - if (proxy != null) { - RPC.stopProxy(proxy); - } - } - return null; - } - }); - } - -} http://git-wip-us.apache.org/repos/asf/hadoop/blob/a6c79f92/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java index 3fef5e2..729af0a 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/server/HSAdminServer.java @@ -29,7 +29,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ipc.ProtobufRpcEngine; import org.apache.hadoop.ipc.RPC; -import org.apache.hadoop.ipc.WritableRpcEngine; import org.apache.hadoop.mapreduce.v2.jobhistory.JHAdminConfig; import org.apache.hadoop.security.AccessControlException; import org.apache.hadoop.security.Groups; @@ -98,8 +97,6 @@ public class HSAdminServer extends AbstractService implements HSAdminProtocol { BlockingService refreshHSAdminProtocolService = HSAdminRefreshProtocolService .newReflectiveBlockingService(refreshHSAdminProtocolXlator); - WritableRpcEngine.ensureInitialized(); - clientRpcAddress = conf.getSocketAddr( JHAdminConfig.MR_HISTORY_BIND_HOST, JHAdminConfig.JHS_ADMIN_ADDRESS, --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org