Чтобы получить имя текущего пользователя в программе Java, вы можете просто получить значение системного свойства user.name
:
System.getProperty("user.name");
Но насколько это безопасно? Может ли пользователь, выполняющий программу, легко установить это свойство на произвольное значение (например, с использованием аргумента командной строки JVM) для обычных сред выполнения? Может ли пользователь легко обмануть это имя пользователя?
Я спрашиваю, потому что я пишу программу из командной строки, которая может быть запущена кем угодно, но разрешает некоторые привилегированные операции только в том случае, если пользователь является специальным административным пользователем.