HDFS-4362. GetDelegationTokenResponseProto does not handle null token. Contributed by Suresh Srinivas.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1430137 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d3949058b8
commit
18e731074e
|
@ -304,6 +304,9 @@ Release 2.0.3-alpha - Unreleased
|
|||
HDFS-4122. Cleanup HDFS logs and reduce the size of logged messages.
|
||||
(suresh)
|
||||
|
||||
HDFS-4362. GetDelegationTokenResponseProto does not handle null token.
|
||||
(suresh)
|
||||
|
||||
NEW FEATURES
|
||||
|
||||
HDFS-2656. Add libwebhdfs, a pure C client based on WebHDFS.
|
||||
|
|
|
@ -129,8 +129,10 @@ import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.DatanodeIDProto;
|
|||
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.DatanodeInfoProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.LocatedBlockProto;
|
||||
import org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey;
|
||||
import org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenIdentifier;
|
||||
import org.apache.hadoop.io.Text;
|
||||
import org.apache.hadoop.security.proto.SecurityProtos.TokenProto;
|
||||
import org.apache.hadoop.security.token.Token;
|
||||
|
||||
import com.google.protobuf.RpcController;
|
||||
import com.google.protobuf.ServiceException;
|
||||
|
@ -774,10 +776,14 @@ public class ClientNamenodeProtocolServerSideTranslatorPB implements
|
|||
RpcController controller, GetDelegationTokenRequestProto req)
|
||||
throws ServiceException {
|
||||
try {
|
||||
TokenProto result = PBHelper.convert(server
|
||||
.getDelegationToken(new Text(req.getRenewer())));
|
||||
return GetDelegationTokenResponseProto.newBuilder().setToken(result)
|
||||
.build();
|
||||
Token<DelegationTokenIdentifier> token = server
|
||||
.getDelegationToken(new Text(req.getRenewer()));
|
||||
GetDelegationTokenResponseProto.Builder rspBuilder =
|
||||
GetDelegationTokenResponseProto.newBuilder();
|
||||
if (token != null) {
|
||||
rspBuilder.setToken(PBHelper.convert(token));
|
||||
}
|
||||
return rspBuilder.build();
|
||||
} catch (IOException e) {
|
||||
throw new ServiceException(e);
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@ import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetBlo
|
|||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetContentSummaryRequestProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetDatanodeReportRequestProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetDelegationTokenRequestProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetDelegationTokenResponseProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetFileInfoRequestProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetFileInfoResponseProto;
|
||||
import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.GetFileLinkInfoRequestProto;
|
||||
|
@ -110,6 +111,7 @@ import org.apache.hadoop.ipc.ProtocolMetaInterface;
|
|||
import org.apache.hadoop.ipc.RPC;
|
||||
import org.apache.hadoop.ipc.RpcClientUtil;
|
||||
import org.apache.hadoop.security.AccessControlException;
|
||||
import org.apache.hadoop.security.proto.SecurityProtos.TokenProto;
|
||||
import org.apache.hadoop.security.token.Token;
|
||||
|
||||
import com.google.protobuf.ByteString;
|
||||
|
@ -758,7 +760,9 @@ public class ClientNamenodeProtocolTranslatorPB implements
|
|||
.setRenewer(renewer.toString())
|
||||
.build();
|
||||
try {
|
||||
return PBHelper.convertDelegationToken(rpcProxy.getDelegationToken(null, req).getToken());
|
||||
GetDelegationTokenResponseProto resp = rpcProxy.getDelegationToken(null, req);
|
||||
return resp.hasToken() ? PBHelper.convertDelegationToken(resp.getToken())
|
||||
: null;
|
||||
} catch (ServiceException e) {
|
||||
throw ProtobufHelper.getRemoteException(e);
|
||||
}
|
||||
|
|
|
@ -414,7 +414,7 @@ message GetDelegationTokenRequestProto {
|
|||
}
|
||||
|
||||
message GetDelegationTokenResponseProto {
|
||||
required hadoop.common.TokenProto token = 1;
|
||||
optional hadoop.common.TokenProto token = 1;
|
||||
}
|
||||
|
||||
message RenewDelegationTokenRequestProto {
|
||||
|
|
Loading…
Reference in New Issue