Explorar o código

Revert HDFS-3654. TestJspHelper#testGetUgi fails with NPE.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1362768 13f79535-47bb-0310-9956-ffa450edef68
Eli Collins %!s(int64=13) %!d(string=hai) anos
pai
achega
3b4292b6ef

+ 0 - 2
CHANGES.txt

@@ -89,8 +89,6 @@ Release 1.2.0 - unreleased
     HADOOP-7836. TestSaslRPC#testDigestAuthMethodHostBasedToken fails
     HADOOP-7836. TestSaslRPC#testDigestAuthMethodHostBasedToken fails
     with hostname localhost.localdomain. (daryn via eli)
     with hostname localhost.localdomain. (daryn via eli)
  
  
-    HDFS-3654. TestJspHelper#testGetUgi fails with NPE. (eli)
-
     HADOOP-8423. MapFile.Reader.get() crashes jvm or throws EOFException on
     HADOOP-8423. MapFile.Reader.get() crashes jvm or throws EOFException on
     Snappy or LZO block-compressed data (todd and harsh)
     Snappy or LZO block-compressed data (todd and harsh)
 
 

+ 3 - 2
src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java

@@ -471,7 +471,7 @@ public class JspHelper {
     final String usernameFromQuery = getUsernameFromQuery(request, tryUgiParameter);
     final String usernameFromQuery = getUsernameFromQuery(request, tryUgiParameter);
     final String doAsUserFromQuery = request.getParameter(DoAsParam.NAME);
     final String doAsUserFromQuery = request.getParameter(DoAsParam.NAME);
 
 
-    if (UserGroupInformation.isSecurityEnabled()) {
+    if(UserGroupInformation.isSecurityEnabled()) {
       final String remoteUser = request.getRemoteUser();
       final String remoteUser = request.getRemoteUser();
       String tokenString = request.getParameter(DELEGATION_PARAMETER_NAME);
       String tokenString = request.getParameter(DELEGATION_PARAMETER_NAME);
       if (tokenString != null) {
       if (tokenString != null) {
@@ -487,7 +487,8 @@ public class JspHelper {
         DelegationTokenIdentifier id = new DelegationTokenIdentifier();
         DelegationTokenIdentifier id = new DelegationTokenIdentifier();
         id.readFields(in);
         id.readFields(in);
         NameNode nn = (NameNode) context.getAttribute("name.node");
         NameNode nn = (NameNode) context.getAttribute("name.node");
-        nn.verifyToken(id, token.getPassword());
+        nn.getNamesystem().getDelegationTokenSecretManager()
+          .verifyToken(id, token.getPassword());
         ugi = id.getUser();
         ugi = id.getUser();
         if (ugi.getRealUser() == null) {
         if (ugi.getRealUser() == null) {
           //non-proxy case
           //non-proxy case

+ 1 - 7
src/hdfs/org/apache/hadoop/hdfs/server/namenode/NameNode.java

@@ -1372,13 +1372,7 @@ public class NameNode implements ClientProtocol, DatanodeProtocol,
     NameNode namenode = new NameNode(conf);
     NameNode namenode = new NameNode(conf);
     return namenode;
     return namenode;
   }
   }
-
-  public synchronized void verifyToken(DelegationTokenIdentifier identifier, 
-      byte[] password) throws InvalidToken {
-    namesystem.getDelegationTokenSecretManager().verifyToken(
-        identifier, password);
-  }
-
+    
   /**
   /**
    */
    */
   public static void main(String argv[]) throws Exception {
   public static void main(String argv[]) throws Exception {

+ 1 - 5
src/test/org/apache/hadoop/hdfs/server/namenode/TestJspHelper.java

@@ -24,7 +24,6 @@ import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.InetSocketAddress;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.ServletContext;
 
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
@@ -68,8 +67,6 @@ public class TestJspHelper {
   public void testGetUgi() throws IOException {
   public void testGetUgi() throws IOException {
     conf.set(DFSConfigKeys.FS_DEFAULT_NAME_KEY, "hdfs://localhost:4321/");
     conf.set(DFSConfigKeys.FS_DEFAULT_NAME_KEY, "hdfs://localhost:4321/");
     HttpServletRequest request = mock(HttpServletRequest.class);
     HttpServletRequest request = mock(HttpServletRequest.class);
-    ServletContext context = mock(ServletContext.class);
-    NameNode nn = mock(NameNode.class);
     String user = "TheDoctor";
     String user = "TheDoctor";
     Text userText = new Text(user);
     Text userText = new Text(user);
     DelegationTokenIdentifier dtId = new DelegationTokenIdentifier(userText,
     DelegationTokenIdentifier dtId = new DelegationTokenIdentifier(userText,
@@ -80,7 +77,6 @@ public class TestJspHelper {
     when(request.getParameter(JspHelper.DELEGATION_PARAMETER_NAME)).thenReturn(
     when(request.getParameter(JspHelper.DELEGATION_PARAMETER_NAME)).thenReturn(
         tokenString);
         tokenString);
     when(request.getRemoteUser()).thenReturn(user);
     when(request.getRemoteUser()).thenReturn(user);
-    when(context.getAttribute("name.node")).thenReturn(nn);
 
 
     conf.set(DFSConfigKeys.HADOOP_SECURITY_AUTHENTICATION, "kerberos");
     conf.set(DFSConfigKeys.HADOOP_SECURITY_AUTHENTICATION, "kerberos");
     UserGroupInformation.setConfiguration(conf);
     UserGroupInformation.setConfiguration(conf);
@@ -88,7 +84,7 @@ public class TestJspHelper {
     InetSocketAddress serviceAddr = NameNode.getAddress(conf);
     InetSocketAddress serviceAddr = NameNode.getAddress(conf);
     Text tokenService = SecurityUtil.buildTokenService(serviceAddr);
     Text tokenService = SecurityUtil.buildTokenService(serviceAddr);
 
 
-    UserGroupInformation ugi = JspHelper.getUGI(context, request, conf);
+    UserGroupInformation ugi = JspHelper.getUGI(request, conf);
     Token<? extends TokenIdentifier> tokenInUgi = ugi.getTokens().iterator()
     Token<? extends TokenIdentifier> tokenInUgi = ugi.getTokens().iterator()
         .next();
         .next();
     Assert.assertEquals(tokenService, tokenInUgi.getService());
     Assert.assertEquals(tokenService, tokenInUgi.getService());