Author: eyang
Date: Sat Dec 8 00:50:26 2012
New Revision: 1418576
URL: http://svn.apache.org/viewvc?rev=1418576&view=rev
Log:
HADOOP-8418. Update UGI Principal classes name for running with
IBM JDK on 64 bits Windows. (Yu Gao via eyang)
Modified:
hadoop/common/branches/branch-1/CHANGES.txt
hadoop/common/branches/branch-1/src/core/org/apache/hadoop/security/UserGroupInformation.java
Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1418576&r1=1418575&r2=1418576&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Sat Dec 8 00:50:26 2012
@@ -137,6 +137,9 @@ Release 1.2.0 - unreleased
BUG FIXES
+ HADOOP-8418. Update UGI Principal classes name for running with
+ IBM JDK on 64 bits Windows. (Yu Gao via eyang)
+
HADOOP-8460. Document proper setting of HADOOP_PID_DIR and
HADOOP_SECURE_DN_PID_DIR (bobby)
Modified: hadoop/common/branches/branch-1/src/core/org/apache/hadoop/security/UserGroupInformation.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/core/org/apache/hadoop/security/UserGroupInformation.java?rev=1418576&r1=1418575&r2=1418576&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/core/org/apache/hadoop/security/UserGroupInformation.java
(original)
+++ hadoop/common/branches/branch-1/src/core/org/apache/hadoop/security/UserGroupInformation.java
Sat Dec 8 00:50:26 2012
@@ -252,16 +252,20 @@ public class UserGroupInformation {
private static String OS_LOGIN_MODULE_NAME;
private static Class<? extends Principal> OS_PRINCIPAL_CLASS;
- private static final boolean windows =
- System.getProperty("os.name").startsWith("Windows");
+ private static final boolean windows =
+ System.getProperty("os.name").startsWith("Windows");
+ private static final boolean is64Bit =
+ System.getProperty("os.arch").contains("64");
private static Thread renewerThread = null;
private static volatile boolean shouldRunRenewerThread = true;
/* Return the OS login module class name */
private static String getOSLoginModuleName() {
if (System.getProperty("java.vendor").contains("IBM")) {
- return windows ? "com.ibm.security.auth.module.NTLoginModule"
- : "com.ibm.security.auth.module.LinuxLoginModule";
+ return windows ? (is64Bit
+ ? "com.ibm.security.auth.module.Win64LoginModule"
+ : "com.ibm.security.auth.module.NTLoginModule")
+ : "com.ibm.security.auth.module.LinuxLoginModule";
} else {
return windows ? "com.sun.security.auth.module.NTLoginModule"
: "com.sun.security.auth.module.UnixLoginModule";
@@ -275,13 +279,13 @@ public class UserGroupInformation {
try {
if (System.getProperty("java.vendor").contains("IBM")) {
if (windows) {
- return (Class<? extends Principal>)
- cl.loadClass("com.ibm.security.auth.UsernamePrincipal");
+ return (Class<? extends Principal>) (is64Bit
+ ? cl.loadClass("com.ibm.security.auth.UsernamePrincipal")
+ : cl.loadClass("com.ibm.security.auth.NTUserPrincipal"));
} else {
- return (Class<? extends Principal>)
- (System.getProperty("os.arch").contains("64")
- ? cl.loadClass("com.ibm.security.auth.UsernamePrincipal")
- : cl.loadClass("com.ibm.security.auth.LinuxPrincipal"));
+ return (Class<? extends Principal>) (is64Bit
+ ? cl.loadClass("com.ibm.security.auth.UsernamePrincipal")
+ : cl.loadClass("com.ibm.security.auth.LinuxPrincipal"));
}
} else {
return (Class<? extends Principal>) (windows
|