Browse Source

HDFS-938. Replace calls to UGI.getUserName() with UGI.getShortUserName().
(jghoman)



git-svn-id: https://svn.apache.org/repos/asf/hadoop/hdfs/trunk@905760 13f79535-47bb-0310-9956-ffa450edef68

Jakob Homan 15 years ago
parent
commit
1274b9e64f
25 changed files with 43 additions and 40 deletions
  1. 3 0
      CHANGES.txt
  2. 1 1
      src/contrib/hdfsproxy/src/java/org/apache/hadoop/hdfsproxy/ProxyFileDataServlet.java
  3. 1 1
      src/contrib/hdfsproxy/src/java/org/apache/hadoop/hdfsproxy/ProxyFileForward.java
  4. 1 1
      src/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
  5. 4 4
      src/java/org/apache/hadoop/hdfs/HftpFileSystem.java
  6. 1 1
      src/java/org/apache/hadoop/hdfs/security/AccessTokenHandler.java
  7. 2 2
      src/java/org/apache/hadoop/hdfs/server/namenode/DfsServlet.java
  8. 6 6
      src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
  9. 2 2
      src/java/org/apache/hadoop/hdfs/server/namenode/FSPermissionChecker.java
  10. 1 1
      src/java/org/apache/hadoop/hdfs/server/namenode/FileDataServlet.java
  11. 3 3
      src/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
  12. 1 1
      src/java/org/apache/hadoop/hdfs/tools/DFSck.java
  13. 1 1
      src/test/hdfs/org/apache/hadoop/fs/TestFcHdfsCreateMkdir.java
  14. 1 1
      src/test/hdfs/org/apache/hadoop/fs/TestFcHdfsPermission.java
  15. 2 2
      src/test/hdfs/org/apache/hadoop/fs/TestHDFSFileContextMainOperations.java
  16. 1 1
      src/test/hdfs/org/apache/hadoop/fs/permission/TestStickyBit.java
  17. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/AppendTestUtil.java
  18. 4 4
      src/test/hdfs/org/apache/hadoop/hdfs/TestDFSPermission.java
  19. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/TestDFSShell.java
  20. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/TestFileAppend2.java
  21. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/TestHDFSFileSystemContract.java
  22. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/TestLocalDFS.java
  23. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java
  24. 1 1
      src/test/hdfs/org/apache/hadoop/hdfs/TestReadWhileWriting.java
  25. 1 1
      src/test/hdfs/org/apache/hadoop/security/TestGroupMappingServiceRefresh.java

+ 3 - 0
CHANGES.txt

@@ -116,6 +116,9 @@ Trunk (unreleased changes)
     HDFS-927  DFSInputStream retries too many times for new block locations
     (Todd Lipcon via Stack)
 
+    HDFS-938. Replace calls to UGI.getUserName() with UGI.getShortUserName()
+    (jghoman)
+
 Release 0.21.0 - Unreleased
 
   INCOMPATIBLE CHANGES

+ 1 - 1
src/contrib/hdfsproxy/src/java/org/apache/hadoop/hdfsproxy/ProxyFileDataServlet.java

@@ -54,7 +54,7 @@ public class ProxyFileDataServlet extends FileDataServlet {
       URISyntaxException {
     return new URI(request.getScheme(), null, request.getServerName(), request
         .getServerPort(), "/streamFile", "filename=" + i.getPath() + "&ugi="
-        + ugi.getUserName(), null);
+        + ugi.getShortUserName(), null);
   }
 
   /** {@inheritDoc} */

+ 1 - 1
src/contrib/hdfsproxy/src/java/org/apache/hadoop/hdfsproxy/ProxyFileForward.java

@@ -34,7 +34,7 @@ public class ProxyFileForward extends ProxyForwardServlet {
     UserGroupInformation ugi = 
                    (UserGroupInformation)request.getAttribute("authorized.ugi");
     if (ugi != null) {
-      path += "&ugi=" + ugi.getUserName();
+      path += "&ugi=" + ugi.getShortUserName();
     }
     return path;
   }

+ 1 - 1
src/java/org/apache/hadoop/hdfs/DistributedFileSystem.java

@@ -162,7 +162,7 @@ public class DistributedFileSystem extends FileSystem {
   /** {@inheritDoc} */
   @Override
   public Path getHomeDirectory() {
-    return new Path("/user/" + dfs.ugi.getUserName()).makeQualified(this);
+    return new Path("/user/" + dfs.ugi.getShortUserName()).makeQualified(this);
   }
 
   private String getPathName(Path file) {

+ 4 - 4
src/java/org/apache/hadoop/hdfs/HftpFileSystem.java

@@ -112,7 +112,7 @@ public class HftpFileSystem extends FileSystem {
     Construct URL pointing to file on namenode
   */
   URL getNamenodeFileURL(Path f) throws IOException {
-    return getNamenodeURL("/data" + f.toUri().getPath(), "ugi=" + ugi.getUserName());
+    return getNamenodeURL("/data" + f.toUri().getPath(), "ugi=" + ugi.getShortUserName());
   }
 
   /* 
@@ -147,7 +147,7 @@ public class HftpFileSystem extends FileSystem {
 
   @Override
   public FSDataInputStream open(Path f, int buffersize) throws IOException {
-    URL u = getNamenodeURL("/data" + f.toUri().getPath(), "ugi=" + ugi.getUserName());
+    URL u = getNamenodeURL("/data" + f.toUri().getPath(), "ugi=" + ugi.getShortUserName());
     return new FSDataInputStream(new ByteRangeInputStream(u));
   }
 
@@ -197,7 +197,7 @@ public class HftpFileSystem extends FileSystem {
         XMLReader xr = XMLReaderFactory.createXMLReader();
         xr.setContentHandler(this);
         HttpURLConnection connection = openConnection("/listPaths" + path,
-            "ugi=" + ugi.getUserName() + (recur? "&recursive=yes" : ""));
+            "ugi=" + ugi.getShortUserName() + (recur? "&recursive=yes" : ""));
 
         InputStream resp = connection.getInputStream();
         xr.parse(new InputSource(resp));
@@ -261,7 +261,7 @@ public class HftpFileSystem extends FileSystem {
 
     private FileChecksum getFileChecksum(String f) throws IOException {
       final HttpURLConnection connection = openConnection(
-          "/fileChecksum" + f, "ugi=" + ugi.getUserName());
+          "/fileChecksum" + f, "ugi=" + ugi.getShortUserName());
       try {
         final XMLReader xr = XMLReaderFactory.createXMLReader();
         xr.setContentHandler(this);

+ 1 - 1
src/java/org/apache/hadoop/hdfs/security/AccessTokenHandler.java

@@ -221,7 +221,7 @@ public class AccessTokenHandler {
   public BlockAccessToken generateToken(long blockID, EnumSet<AccessMode> modes)
       throws IOException {
     UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
-    String userID = (ugi == null ? null : ugi.getUserName());
+    String userID = (ugi == null ? null : ugi.getShortUserName());
     return generateToken(userID, blockID, modes);
   }
 

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

@@ -72,7 +72,7 @@ abstract class DfsServlet extends HttpServlet {
     }
     
     if(LOG.isDebugEnabled())
-      LOG.debug("getUGI is returning: " + u.getUserName());
+      LOG.debug("getUGI is returning: " + u.getShortUserName());
     return u;
   }
 
@@ -98,7 +98,7 @@ abstract class DfsServlet extends HttpServlet {
         : host.getInfoPort();
     final String filename = request.getPathInfo();
     return new URI(scheme, null, hostname, port, servletpath,
-        "filename=" + filename + "&ugi=" + ugi.getUserName(), null);
+        "filename=" + filename + "&ugi=" + ugi.getShortUserName(), null);
   }
 
   /** Get filename from the request */

+ 6 - 6
src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java

@@ -404,7 +404,7 @@ public class FSNamesystem implements FSConstants, FSNamesystemMBean, FSClusterSt
     short filePermission = (short)conf.getInt(DFSConfigKeys.DFS_NAMENODE_UPGRADE_PERMISSION_KEY,
                                               DFSConfigKeys.DFS_NAMENODE_UPGRADE_PERMISSION_DEFAULT);
     this.defaultPermission = PermissionStatus.createImmutable(
-        fsOwner.getUserName(), supergroup, new FsPermission(filePermission));
+        fsOwner.getShortUserName(), supergroup, new FsPermission(filePermission));
 
     long heartbeatInterval = conf.getLong("dfs.heartbeat.interval", 3) * 1000;
     this.heartbeatRecheckInterval = conf.getInt(
@@ -3858,7 +3858,7 @@ public class FSNamesystem implements FSConstants, FSNamesystemMBean, FSClusterSt
   }
 
   PermissionStatus createFsOwnerPermissions(FsPermission permission) {
-    return new PermissionStatus(fsOwner.getUserName(), supergroup, permission);
+    return new PermissionStatus(fsOwner.getShortUserName(), supergroup, permission);
   }
 
   private FSPermissionChecker checkOwner(String path) throws AccessControlException {
@@ -3900,7 +3900,7 @@ public class FSNamesystem implements FSConstants, FSNamesystemMBean, FSClusterSt
       FsAction ancestorAccess, FsAction parentAccess, FsAction access,
       FsAction subAccess) throws AccessControlException {
     FSPermissionChecker pc = new FSPermissionChecker(
-        fsOwner.getUserName(), supergroup);
+        fsOwner.getShortUserName(), supergroup);
     if (!pc.isSuper) {
       dir.waitForReady();
       pc.checkPermission(path, dir.rootDir, doCheckOwner,
@@ -4341,7 +4341,7 @@ public class FSNamesystem implements FSConstants, FSNamesystemMBean, FSClusterSt
 
   public Token<DelegationTokenIdentifier> getDelegationToken(Text renewer)
       throws IOException {
-    String user = UserGroupInformation.getCurrentUser().getUserName();
+    String user = UserGroupInformation.getCurrentUser().getShortUserName();
     Text owner = new Text(user);
     DelegationTokenIdentifier dtId = new DelegationTokenIdentifier(owner, renewer);
     return new Token<DelegationTokenIdentifier>(dtId, dtSecretManager);
@@ -4349,13 +4349,13 @@ public class FSNamesystem implements FSConstants, FSNamesystemMBean, FSClusterSt
 
   public Boolean renewDelegationToken(Token<DelegationTokenIdentifier> token)
       throws InvalidToken, IOException {
-    String renewer = UserGroupInformation.getCurrentUser().getUserName();
+    String renewer = UserGroupInformation.getCurrentUser().getShortUserName();
     return dtSecretManager.renewToken(token, renewer);
   }
 
   public Boolean cancelDelegationToken(Token<DelegationTokenIdentifier> token)
       throws IOException {
-    String canceller = UserGroupInformation.getCurrentUser().getUserName();
+    String canceller = UserGroupInformation.getCurrentUser().getShortUserName();
     return dtSecretManager.cancelToken(token, canceller);
   }
 }

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

@@ -48,7 +48,7 @@ class FSPermissionChecker {
     } 
     
     groups.addAll(Arrays.asList(ugi.getGroupNames()));
-    user = ugi.getUserName();
+    user = ugi.getShortUserName();
     
     isSuper = user.equals(fsOwner) || groups.contains(supergroup);
   }
@@ -69,7 +69,7 @@ class FSPermissionChecker {
                                              String supergroup) 
                      throws AccessControlException {
     FSPermissionChecker checker = 
-      new FSPermissionChecker(owner.getUserName(), supergroup);
+      new FSPermissionChecker(owner.getShortUserName(), supergroup);
     if (!checker.isSuper) {
       throw new AccessControlException("Access denied for user " 
           + checker.user + ". Superuser privilege is required");

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

@@ -57,7 +57,7 @@ public class FileDataServlet extends DfsServlet {
           ? (Integer)getServletContext().getAttribute("datanode.https.port")
           : host.getInfoPort(),
             "/streamFile", "filename=" + i.getPath() + 
-            "&ugi=" + ugi.getUserName(), null);
+            "&ugi=" + ugi.getShortUserName(), null);
   }
 
   /** Select a datanode to service this request.

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

@@ -607,7 +607,7 @@ public class NameNode implements ClientProtocol, DatanodeProtocol,
                             + MAX_PATH_LENGTH + " characters, " + MAX_PATH_DEPTH + " levels.");
     }
     namesystem.startFile(src,
-        new PermissionStatus(UserGroupInformation.getCurrentUser().getUserName(),
+        new PermissionStatus(UserGroupInformation.getCurrentUser().getShortUserName(),
             null, masked),
         clientName, clientMachine, flag.get(), createParent, replication, blockSize);
     myMetrics.numFilesCreated.inc();
@@ -814,7 +814,7 @@ public class NameNode implements ClientProtocol, DatanodeProtocol,
                             + MAX_PATH_LENGTH + " characters, " + MAX_PATH_DEPTH + " levels.");
     }
     return namesystem.mkdirs(src,
-        new PermissionStatus(UserGroupInformation.getCurrentUser().getUserName(),
+        new PermissionStatus(UserGroupInformation.getCurrentUser().getShortUserName(),
             null, masked), createParent);
   }
 
@@ -1182,7 +1182,7 @@ public class NameNode implements ClientProtocol, DatanodeProtocol,
   @Override
   public void refreshUserToGroupsMappings(Configuration conf) throws IOException {
     LOG.info("Refreshing all user-to-groups mappings. Requested by user: " + 
-             UserGroupInformation.getCurrentUser().getUserName());
+             UserGroupInformation.getCurrentUser().getShortUserName());
     Groups.getUserToGroupsMappingService(conf).refresh();
   }
 

+ 1 - 1
src/java/org/apache/hadoop/hdfs/tools/DFSck.java

@@ -106,7 +106,7 @@ public class DFSck extends Configured implements Tool {
     final StringBuffer url = new StringBuffer("http://");
     url.append(getConf().get(DFSConfigKeys.DFS_NAMENODE_HTTP_ADDRESS_KEY, 
                              DFSConfigKeys.DFS_NAMENODE_HTTP_ADDRESS_DEFAULT));
-    url.append("/fsck?ugi=").append(ugi.getUserName()).append("&path=");
+    url.append("/fsck?ugi=").append(ugi.getShortUserName()).append("&path=");
 
     String dir = "/";
     // find top-level dir first

+ 1 - 1
src/test/hdfs/org/apache/hadoop/fs/TestFcHdfsCreateMkdir.java

@@ -45,7 +45,7 @@ public class TestFcHdfsCreateMkdir extends
     cluster = new MiniDFSCluster(conf, 2, true, null);
     fc = FileContext.getFileContext(cluster.getURI(), conf);
     defaultWorkingDirectory = fc.makeQualified( new Path("/user/" + 
-        UserGroupInformation.getCurrentUser().getUserName()));
+        UserGroupInformation.getCurrentUser().getShortUserName()));
     fc.mkdir(defaultWorkingDirectory, FileContext.DEFAULT_PERM, true);
   }
 

+ 1 - 1
src/test/hdfs/org/apache/hadoop/fs/TestFcHdfsPermission.java

@@ -45,7 +45,7 @@ public class TestFcHdfsPermission extends FileContextPermissionBase {
     cluster = new MiniDFSCluster(conf, 2, true, null);
     fc = FileContext.getFileContext(cluster.getURI(), conf);
     defaultWorkingDirectory = fc.makeQualified( new Path("/user/" + 
-        UserGroupInformation.getCurrentUser().getUserName()));
+        UserGroupInformation.getCurrentUser().getShortUserName()));
     fc.mkdir(defaultWorkingDirectory, FileContext.DEFAULT_PERM, true);
   }
 

+ 2 - 2
src/test/hdfs/org/apache/hadoop/fs/TestHDFSFileContextMainOperations.java

@@ -52,7 +52,7 @@ public class TestHDFSFileContextMainOperations extends
     cluster.waitClusterUp();
     fc = FileContext.getFileContext(cluster.getURI(), CONF);
     defaultWorkingDirectory = fc.makeQualified( new Path("/user/" + 
-        UserGroupInformation.getCurrentUser().getUserName()));
+        UserGroupInformation.getCurrentUser().getShortUserName()));
     fc.mkdir(defaultWorkingDirectory, FileContext.DEFAULT_PERM, true);
   }
 
@@ -65,7 +65,7 @@ public class TestHDFSFileContextMainOperations extends
     cluster.waitClusterUp();
     fc = FileContext.getFileContext(cluster.getURI(), CONF);
     defaultWorkingDirectory = fc.makeQualified( new Path("/user/" + 
-        UserGroupInformation.getCurrentUser().getUserName()));
+        UserGroupInformation.getCurrentUser().getShortUserName()));
     fc.mkdir(defaultWorkingDirectory, FileContext.DEFAULT_PERM, true);
   }
       

+ 1 - 1
src/test/hdfs/org/apache/hadoop/fs/permission/TestStickyBit.java

@@ -82,7 +82,7 @@ public class TestStickyBit extends TestCase {
     writeFile(hdfs, file);
 
     // Make sure the correct user is the owner
-    assertEquals(user1.getUserName(), hdfs.getFileStatus(file).getOwner());
+    assertEquals(user1.getShortUserName(), hdfs.getFileStatus(file).getOwner());
 
     // Log onto cluster as another user and attempt to delete the file
     FileSystem hdfs2 = DFSTestUtil.getFileSystemAs(user2, conf);

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/AppendTestUtil.java

@@ -94,7 +94,7 @@ public class AppendTestUtil {
    */
   public static FileSystem createHdfsWithDifferentUsername(final Configuration conf
       ) throws IOException, InterruptedException {
-    String username = UserGroupInformation.getCurrentUser().getUserName()+"_XXX";
+    String username = UserGroupInformation.getCurrentUser().getShortUserName()+"_XXX";
     UserGroupInformation ugi = 
       UserGroupInformation.createUserForTesting(username, new String[]{"supergroup"});
     

+ 4 - 4
src/test/hdfs/org/apache/hadoop/hdfs/TestDFSPermission.java

@@ -261,15 +261,15 @@ public class TestDFSPermission extends TestCase {
     fs = FileSystem.get(conf);
     create(op, FILE_DIR_PATH, DEFAULT_UMASK,
         new FsPermission(DEFAULT_PERMISSION));
-    checkOwnership(FILE_DIR_PATH, SUPERUSER.getUserName(),
+    checkOwnership(FILE_DIR_PATH, SUPERUSER.getShortUserName(),
         getGroup(FILE_DIR_PATH.getParent()));
 
     // case 2: superuser changes FILE_DIR_PATH's owner to be <user1, group3>
-    setOwner(FILE_DIR_PATH, USER1.getUserName(), GROUP3_NAME, false);
+    setOwner(FILE_DIR_PATH, USER1.getShortUserName(), GROUP3_NAME, false);
 
     // case 3: user1 changes FILE_DIR_PATH's owner to be user2
     login(USER1);
-    setOwner(FILE_DIR_PATH, USER2.getUserName(), null, true);
+    setOwner(FILE_DIR_PATH, USER2.getShortUserName(), null, true);
 
     // case 4: user1 changes FILE_DIR_PATH's group to be group1 which it belongs
     // to
@@ -284,7 +284,7 @@ public class TestDFSPermission extends TestCase {
     setOwner(FILE_DIR_PATH, null, GROUP3_NAME, true);
 
     // case 7: user2 (non-owner) changes FILE_DIR_PATH's user to be user2
-    setOwner(FILE_DIR_PATH, USER2.getUserName(), null, true);
+    setOwner(FILE_DIR_PATH, USER2.getShortUserName(), null, true);
 
     // delete the file/directory
     login(SUPERUSER);

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/TestDFSShell.java

@@ -1237,7 +1237,7 @@ public class TestDFSShell extends TestCase {
       dfs.setPermission(sub, new FsPermission((short)0));
 
       final UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
-      final String tmpusername = ugi.getUserName() + "1";
+      final String tmpusername = ugi.getShortUserName() + "1";
       UserGroupInformation tmpUGI = UserGroupInformation.createUserForTesting(
           tmpusername, new String[] {tmpusername});
       String results = tmpUGI.doAs(new PrivilegedExceptionAction<String>() {

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/TestFileAppend2.java

@@ -156,7 +156,7 @@ public class TestFileAppend2 extends TestCase {
           UserGroupInformation.getCurrentUser();
         String username = "testappenduser";
         String group = "testappendgroup";
-        assertFalse(superuser.getUserName().equals(username));
+        assertFalse(superuser.getShortUserName().equals(username));
         assertFalse(Arrays.asList(superuser.getGroupNames()).contains(group));
         UserGroupInformation appenduser = 
           UserGroupInformation.createUserForTesting(username, new String[]{group});

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/TestHDFSFileSystemContract.java

@@ -33,7 +33,7 @@ public class TestHDFSFileSystemContract extends FileSystemContractBaseTest {
     cluster = new MiniDFSCluster(conf, 2, true, null);
     fs = cluster.getFileSystem();
     defaultWorkingDirectory = "/user/" + 
-           UserGroupInformation.getCurrentUser().getUserName();
+           UserGroupInformation.getCurrentUser().getShortUserName();
   }
   
   @Override

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/TestLocalDFS.java

@@ -51,7 +51,7 @@ public class TestLocalDFS extends TestCase {
 
   static String getUserName(FileSystem fs) {
     if (fs instanceof DistributedFileSystem) {
-      return ((DistributedFileSystem)fs).dfs.ugi.getUserName();
+      return ((DistributedFileSystem)fs).dfs.ugi.getShortUserName();
     }
     return System.getProperty("user.name");
   }

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java

@@ -253,7 +253,7 @@ public class TestQuota extends TestCase {
         @Override
         public Object run() throws Exception {
           assertEquals("Not running as new user", username, 
-              UserGroupInformation.getCurrentUser().getUserName());
+              UserGroupInformation.getCurrentUser().getShortUserName());
           DFSAdmin userAdmin = new DFSAdmin(conf);
           
           args2[1] = "100";

+ 1 - 1
src/test/hdfs/org/apache/hadoop/hdfs/TestReadWhileWriting.java

@@ -126,7 +126,7 @@ public class TestReadWhileWriting {
   static void checkFile(Path p, int expectedsize, final Configuration conf
       ) throws IOException, InterruptedException {
     //open the file with another user account
-    final String username = UserGroupInformation.getCurrentUser().getUserName()
+    final String username = UserGroupInformation.getCurrentUser().getShortUserName()
         + "_" + ++userCount;
 
     UserGroupInformation ugi = UserGroupInformation.createUserForTesting(username, 

+ 1 - 1
src/test/hdfs/org/apache/hadoop/security/TestGroupMappingServiceRefresh.java

@@ -86,7 +86,7 @@ public class TestGroupMappingServiceRefresh {
     DFSAdmin admin = new DFSAdmin(config);
     String [] args =  new String[]{"-refreshUserToGroupsMappings"};
     Groups groups = Groups.getUserToGroupsMappingService(config);
-    String user = UserGroupInformation.getCurrentUser().getUserName();
+    String user = UserGroupInformation.getCurrentUser().getShortUserName();
     System.out.println("first attempt:");
     List<String> g1 = groups.getGroups(user);
     String [] str_groups = new String [g1.size()];