Проверка, включена ли аутентификация LDAP в WebSphere - PullRequest
0 голосов
/ 03 января 2012

У меня есть несколько экземпляров WebSphere, для которых Active Directory был подключен для аутентификации LDAP, а некоторые - там, где его нет.

У меня есть сервлет для обработки аутентификации. Он вызывает httpServletRequest.getRemoteUser() и проверяет, является ли это null. Это работает при развертывании на серверах с поддержкой LDAP, но в тех случаях, когда LDAP не включен (например, на рабочих станциях разработчиков), это означает, что пользователь никогда не проходит аутентификацию.

Как программно проверить, включен ли LDAP в контейнере?

1 Ответ

1 голос
/ 05 января 2012

Сервер приложений не заботится о реестре, будь то сервер LDAP, база данных или что-то еще.

Если на сервере не включена защита, то он всегда будет возвращать ноль, поскольку пользователь имеетне прошел проверку подлинности.

В соответствии с предложением home , вы должны включить защиту, скажем, в файловом реестре по умолчанию, если хотите, чтобы имя пользователя использовалось в средах разработки.

Спецификации утверждают это:

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

getRemoteUser

java.lang.String getRemoteUser () Возвращает имя пользователя, сделавшего этот запрос, если пользователь был аутентифицированили ноль, если пользователь не был аутентифицирован.То, будет ли имя пользователя отправлено с каждым последующим запросом, зависит от браузера и типа аутентификации.То же, что и значение переменной CGI REMOTE_USER.Возвращает: String, указывающая логин пользователя, который делает этот запрос, или ноль, если логин пользователя неизвестен

...