Name: omR10185 Date: 04/20/2001
System.getProperty("user.name") method returns value of USERNAME environment variable instead of real account name in WinNT.
To reproduce try the following easy "Java" program and test script:
Log in WinNT, for example as user "mov", run "Command prompt" (E:\WINNT\system32\cmd.exe) and execute the following:
E:\tmp\test>type username.java
public class username{
public static void main(String args[]) {
String user = null;
try {
user = System.getProperty("user.name");
if (user == null) {
System.out.println("System.getProperty(\"user.name\") returns: NULL");
} else {
System.out.println("System.getProperty(\"user.name\") returns: " + user);
}
} catch (Exception e) {
// error
System.out.println(e.toString());
}
}
}
E:\tmp\test>echo %USERNAME%
mov
E:\tmp\test>j:/ld25/java/dest/jdk1.3/win32/bin/java username
System.getProperty("user.name") returns: mov
E:\tmp\test>set USERNAME=mmm
E:\tmp\test>j:/ld25/java/dest/jdk1.3/win32/bin/java username
System.getProperty("user.name") returns: mmm
E:\tmp\test>set USERNAME=
E:\tmp\test>j:/ld25/java/dest/jdk1.3/win32/bin/java username
System.getProperty("user.name") returns: mov
On Solaris this method has another (I think correct) behavior.
$ set | grep USER
DTUSERSESSION=mov-novo118-0
USER=mov
$ /export/ld25/java/dest/jdk1.3/solaris/bin/java username
System.getProperty("user.name") returns: mov
$ export USER=mmm
$ export USERNAME=mmm
$ set | grep USER
DTUSERSESSION=mov-novo118-0
USER=mmm
USERNAME=mmm
$ /export/ld25/java/dest/jdk1.3/solaris/bin/java username
System.getProperty("user.name") returns: mov
So if user or somebody else erroneously set USERNAME variable to incorrect value "Java" application get it.
We work in TeamWare development team. It's impossible to provide cross platform compatibility for our applications. Nobody can guarantee the same behavior on Windows and Solaris platforms.
======================================================================
- relates to
-
JDK-6478274 user.name system property should include domain on windows
-
- Open
-