#java #web-applications #websphere
#java #веб-приложения #websphere
Вопрос:
У меня есть внутреннее веб-приложение, созданное на Java 1.6 и Websphere. Только пользователи, вошедшие в домен, могут получить доступ к приложению. Мне нужно иметь возможность получить доступ к имени пользователя любого пользователя, использующего приложение. Мы используем контроллеры домена Windows. Я довольно новичок в Java и не могу понять, как получить эту информацию. Будем признательны за любую помощь. Если вам нужна дополнительная информация, я буду рад предоставить ее.
Спасибо,
Эндрю
Комментарии:
1. Позвольте мне проверить это. Я свяжусь с сетевыми пользователями, чтобы узнать, как именно они это делают. Может занять несколько часов, поскольку я нахожусь на 8 часовых поясов впереди них.
Ответ №1:
Вот код, который в конечном итоге сработал.
LdapClient ldapClient = new LdapClient();
Boolean foundUserInAD = Boolean.FALSE;
foundUserInAD = ldapClient.userIsInAD(userName, password);
if(foundUserInAD) {
//Do stuff.
}
Ответ №2:
Из того, что я знаю о J2EE и веб-приложениях, обычно вы можете получить основной объект, а затем извлечь из него имя пользователя. Это то, что вам нужно?
Вот пример того, как вы могли бы сделать это в сервлете внутри методов doGet или doPost:
//here is the HttpServletRequest object. retrieve user from it.
Principal principal = request.getUserPrincipal();
//now get the name out of it.
String userName = principal.getName();
Получить пароль намного сложнее, но если все, что вам нужно, это имя пользователя, это должно быть имя, с которым они «вошли» на ваш WebSphere server (т. Е. любой идентификатор, который был передан ему).
Это то, что вы ищете?
Ответ №3:
Смотрите:javax.servlet.http.HttpServletRequest.getRemoteUser()
Returns the login of the user making this request, if the user has been authenticated, or null if the user has not been authenticated.
Ответ №4:
Ваш вопрос на самом деле не относится к Java, но был связан. В принципе, если вы хотите использовать средства безопасности WAS для веб-безопасности, все ваши пользователи должны быть найдены из LDAP, для которого настроен WAS. Если для вас это невозможно, пожалуйста, внесите изменения в приложение, чтобы оно реализовало свои собственные механизмы безопасности (аутентификации и авторизации).
Похоже, кто-то включил роль безопасности JavaEE для сервлетов, используемых вашим приложением, и, возможно, также для SPNEGO. Это довольно приятная конфигурация, но она действительно не позволяет никому, кто не найден в LDAP по умолчанию, получить доступ к чему-либо.