/// <exception cref="System.IO.IOException"/> private static UserGroupInformation GetTokenUGI(ServletContext context, HttpServletRequest request, string tokenString, Configuration conf) { Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier> token = new Org.Apache.Hadoop.Security.Token.Token <DelegationTokenIdentifier>(); token.DecodeFromUrlString(tokenString); IPEndPoint serviceAddress = GetNNServiceAddress(context, request); if (serviceAddress != null) { SecurityUtil.SetTokenService(token, serviceAddress); token.SetKind(DelegationTokenIdentifier.HdfsDelegationKind); } ByteArrayInputStream buf = new ByteArrayInputStream(token.GetIdentifier()); DataInputStream @in = new DataInputStream(buf); DelegationTokenIdentifier id = new DelegationTokenIdentifier(); id.ReadFields(@in); if (context != null) { NameNode nn = NameNodeHttpServer.GetNameNodeFromContext(context); if (nn != null) { // Verify the token. nn.GetNamesystem().VerifyToken(id, token.GetPassword()); } } UserGroupInformation ugi = id.GetUser(); ugi.AddToken(token); return(ugi); }
private static IPEndPoint GetNNServiceAddress(ServletContext context, HttpServletRequest request) { string namenodeAddressInUrl = request.GetParameter(NamenodeAddress); IPEndPoint namenodeAddress = null; if (namenodeAddressInUrl != null) { namenodeAddress = NetUtils.CreateSocketAddr(namenodeAddressInUrl); } else { if (context != null) { namenodeAddress = NameNodeHttpServer.GetNameNodeAddressFromContext(context); } } if (namenodeAddress != null) { return(namenodeAddress); } return(null); }