Я выполняю веб-приложение Java EE, для которого требуется единый вход в Active Directory.
Приложение больше не будет запрашивать имя пользователя и пароль.Процесс аутентификации потребует извлечения текущего пользователя Windows, вошедшего в систему.Когда у меня есть пользователь, мне нужно запросить Active Directory, чтобы получить роли для этого вошедшего в систему пользователя.Мне известно, что это исключит пользователей, не являющихся пользователями Windows, но это внутреннее приложение, и все клиенты используют Windows.
Мне необходимо реализовать единый вход в 2 веб-приложениях Java EE.1 приложение работает на GlassFish v2.1.1 (JDK 1.6), а другое - на Tomcat (JDK 1.5).
По сути, моя основная проблема - как получить текущего пользователя Windows, вошедшего в систему.
Я уже сталкивался с JAAS и Kerberos .Пожалуйста, поправьте меня, если я ошибаюсь.Насколько я понимаю, это протокол аутентификации, и они не имеют функции для извлечения текущих окон, вошедших в систему пользователя.
Я уже пробовал следующее, но всегда получаю null
или собственное имя пользователя сервера.
System.getProperty("user.name");
new com.sun.security.auth.module.NTSystem().getName();
request.getUserPrincipal().getName();
System.getenv("USERNAME");
- JCIF NTLM HTTP-аутентификация вTomcat
- LoginContext
Я открыт для любых предложений.