HDFS-14176. Replace incorrect use of system property user.name. Contributed by Dinesh Chitlangia.
This commit is contained in:
parent
b3b0e332e6
commit
399563fec6
@ -113,7 +113,7 @@ public class RouterClientProtocol implements ClientProtocol {
|
||||
private final ActiveNamenodeResolver namenodeResolver;
|
||||
|
||||
/** Identifier for the super user. */
|
||||
private final String superUser;
|
||||
private String superUser;
|
||||
/** Identifier for the super group. */
|
||||
private final String superGroup;
|
||||
/** Erasure coding calls. */
|
||||
@ -126,7 +126,13 @@ public class RouterClientProtocol implements ClientProtocol {
|
||||
this.namenodeResolver = rpcServer.getNamenodeResolver();
|
||||
|
||||
// User and group for reporting
|
||||
this.superUser = System.getProperty("user.name");
|
||||
try {
|
||||
this.superUser = UserGroupInformation.getCurrentUser().getShortUserName();
|
||||
} catch (IOException ex) {
|
||||
LOG.warn("Unable to get user name. Fall back to system property " +
|
||||
"user.name", ex);
|
||||
this.superUser = System.getProperty("user.name");
|
||||
}
|
||||
this.superGroup = conf.get(
|
||||
DFSConfigKeys.DFS_PERMISSIONS_SUPERUSERGROUP_KEY,
|
||||
DFSConfigKeys.DFS_PERMISSIONS_SUPERUSERGROUP_DEFAULT);
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
package org.apache.hadoop.fs.swift.snative;
|
||||
|
||||
import org.apache.hadoop.security.UserGroupInformation;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.apache.hadoop.classification.InterfaceAudience;
|
||||
@ -100,7 +101,7 @@ public String getScheme() {
|
||||
}
|
||||
|
||||
/**
|
||||
* default class initialization
|
||||
* default class initialization.
|
||||
*
|
||||
* @param fsuri path to Swift
|
||||
* @param conf Hadoop configuration
|
||||
@ -115,7 +116,14 @@ public void initialize(URI fsuri, Configuration conf) throws IOException {
|
||||
store = new SwiftNativeFileSystemStore();
|
||||
}
|
||||
this.uri = fsuri;
|
||||
String username = System.getProperty("user.name");
|
||||
String username;
|
||||
try {
|
||||
username = UserGroupInformation.getCurrentUser().getShortUserName();
|
||||
} catch (IOException ex) {
|
||||
LOG.warn("Unable to get user name. Fall back to system property " +
|
||||
"user.name", ex);
|
||||
username = System.getProperty("user.name");
|
||||
}
|
||||
this.workingDir = new Path("/user", username)
|
||||
.makeQualified(uri, new Path(username));
|
||||
if (LOG.isDebugEnabled()) {
|
||||
|
Loading…
Reference in New Issue
Block a user