Определение пользователя сети из приложения Java Websphere - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть внутреннее веб-приложение, построенное на Java 1.6 и Websphere. Только пользователи, вошедшие в домен, могут получить доступ к приложению. Мне нужно иметь доступ к имени пользователя любого, кто использует приложение. Мы используем контроллеры домена Windows. Я довольно новичок в Java и не могу понять, как получить эту информацию. Любая помощь будет оценена. Если вам нужна дополнительная информация, я с радостью ее предоставлю.

Спасибо

Andrew

Ответы [ 4 ]

1 голос
/ 13 мая 2011

Вот код, который в итоге сработал.

LdapClient ldapClient = new LdapClient();
Boolean foundUserInAD = Boolean.FALSE;
foundUserInAD = ldapClient.userIsInAD(userName, password);

if(foundUserInAD) {
    //Do stuff.
}
0 голосов
/ 06 апреля 2011

См: 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.
0 голосов
/ 09 апреля 2011

Ваш вопрос не относится к Java, но связан с БЫЛ. В основном, если вы хотите использовать средства безопасности WAS для Web Security, все ваши пользователи должны быть найдены из LDAP, для которого настроена WAS. Если это невозможно для вас, внесите изменения в приложение, чтобы оно реализовало собственные механизмы обеспечения безопасности (аутентификации и авторизации).

Звучит так, будто кто-то включил роль безопасности JavaEE для сервлетов, используемых вашим приложением и, возможно, также для SPNEGO. Это довольно хорошая конфигурация, но она действительно не позволяет никому, кто не найден из LDAP по умолчанию, получить доступ к чему-либо.

0 голосов
/ 06 апреля 2011

Из того, что я знаю о J2EE и веб-приложениях, вы обычно можете получить объект Principal, а затем извлечь из него имя пользователя. Это то, что вам нужно?

Вот пример того, как вы можете сделать это в сервлете внутри методов 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 (то есть, какой бы ID ему ни передавался).

Это то, что вы ищете?

...