HDFS-3444. hdfs groups command doesn't work with security enabled. Contributed by Aaron T. Myers.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1340261 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0e7ea9b56c
commit
f03fc39e2c
|
@ -79,6 +79,8 @@ Release 2.0.1-alpha - UNRELEASED
|
||||||
HDFS-3391. Fix InvalidateBlocks to compare blocks including their
|
HDFS-3391. Fix InvalidateBlocks to compare blocks including their
|
||||||
generation stamps. (todd)
|
generation stamps. (todd)
|
||||||
|
|
||||||
|
HDFS-3444. hdfs groups command doesn't work with security enabled. (atm)
|
||||||
|
|
||||||
Release 2.0.0-alpha - UNRELEASED
|
Release 2.0.0-alpha - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -20,9 +20,13 @@ package org.apache.hadoop.hdfs.protocolPB;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience;
|
import org.apache.hadoop.classification.InterfaceAudience;
|
||||||
import org.apache.hadoop.classification.InterfaceStability;
|
import org.apache.hadoop.classification.InterfaceStability;
|
||||||
|
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
||||||
import org.apache.hadoop.hdfs.protocol.proto.GetUserMappingsProtocolProtos.GetUserMappingsProtocolService;
|
import org.apache.hadoop.hdfs.protocol.proto.GetUserMappingsProtocolProtos.GetUserMappingsProtocolService;
|
||||||
import org.apache.hadoop.ipc.ProtocolInfo;
|
import org.apache.hadoop.ipc.ProtocolInfo;
|
||||||
|
import org.apache.hadoop.security.KerberosInfo;
|
||||||
|
|
||||||
|
@KerberosInfo(
|
||||||
|
serverPrincipal=CommonConfigurationKeys.HADOOP_SECURITY_SERVICE_USER_NAME_KEY)
|
||||||
@ProtocolInfo(
|
@ProtocolInfo(
|
||||||
protocolName = "org.apache.hadoop.tools.GetUserMappingsProtocol",
|
protocolName = "org.apache.hadoop.tools.GetUserMappingsProtocol",
|
||||||
protocolVersion = 1)
|
protocolVersion = 1)
|
||||||
|
|
|
@ -21,14 +21,16 @@ import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.hadoop.classification.InterfaceAudience;
|
import org.apache.hadoop.classification.InterfaceAudience;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
|
import org.apache.hadoop.hdfs.DFSConfigKeys;
|
||||||
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
||||||
import org.apache.hadoop.hdfs.NameNodeProxies;
|
import org.apache.hadoop.hdfs.NameNodeProxies;
|
||||||
import org.apache.hadoop.hdfs.protocolPB.GetUserMappingsProtocolClientSideTranslatorPB;
|
|
||||||
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
|
||||||
import org.apache.hadoop.tools.GetGroupsBase;
|
import org.apache.hadoop.tools.GetGroupsBase;
|
||||||
import org.apache.hadoop.tools.GetUserMappingsProtocol;
|
import org.apache.hadoop.tools.GetUserMappingsProtocol;
|
||||||
import org.apache.hadoop.util.ToolRunner;
|
import org.apache.hadoop.util.ToolRunner;
|
||||||
|
@ -40,6 +42,8 @@ import org.apache.hadoop.util.ToolRunner;
|
||||||
@InterfaceAudience.Private
|
@InterfaceAudience.Private
|
||||||
public class GetGroups extends GetGroupsBase {
|
public class GetGroups extends GetGroupsBase {
|
||||||
|
|
||||||
|
private static final Log LOG = LogFactory.getLog(GetGroups.class);
|
||||||
|
|
||||||
static{
|
static{
|
||||||
HdfsConfiguration.init();
|
HdfsConfiguration.init();
|
||||||
}
|
}
|
||||||
|
@ -59,6 +63,22 @@ public class GetGroups extends GetGroupsBase {
|
||||||
return NameNode.getAddress(conf);
|
return NameNode.getAddress(conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setConf(Configuration conf) {
|
||||||
|
conf = new HdfsConfiguration(conf);
|
||||||
|
String nameNodePrincipal = conf.get(
|
||||||
|
DFSConfigKeys.DFS_NAMENODE_USER_NAME_KEY, "");
|
||||||
|
|
||||||
|
if (LOG.isDebugEnabled()) {
|
||||||
|
LOG.debug("Using NN principal: " + nameNodePrincipal);
|
||||||
|
}
|
||||||
|
|
||||||
|
conf.set(CommonConfigurationKeys.HADOOP_SECURITY_SERVICE_USER_NAME_KEY,
|
||||||
|
nameNodePrincipal);
|
||||||
|
|
||||||
|
super.setConf(conf);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected GetUserMappingsProtocol getUgmProtocol() throws IOException {
|
protected GetUserMappingsProtocol getUgmProtocol() throws IOException {
|
||||||
return NameNodeProxies.createProxy(getConf(), FileSystem.getDefaultUri(getConf()),
|
return NameNodeProxies.createProxy(getConf(), FileSystem.getDefaultUri(getConf()),
|
||||||
|
|
Loading…
Reference in New Issue