Мне надо ограничить доступ к проге на основе LDAP (Сверять введенный логин и пароль с тем что есть в LDAP.)
Как это сделать по проще.
Какие есть компоненты в java для работы с LDAP
Здравствуйте, gorbachev, Вы писали:
G>loginName Это у нас кто?
полное имя логинящегося пользователя. в примере формируется на основе фиксированного имени домена + того имени, которое ввёл пользователь.
как вариант, возможно, что твои пользователи будут вводить полное имя...
0. указать полный путь к хранилищу сертификатов
1. попробовать делать это в static блоке класса с main
2. попробовать делать это аргументами командной строки при запуске java (у меня работало это только так)
Здравствуйте, C0s, Вы писали:
C0s>Здравствуйте, gorbachev, Вы писали:
G>>Как это сделать по проще.
C0s>предлагаю тебе оттолкнуться от такого примера:
C0s>
К ldap получается подключиться только с определенным логином и паролем.
Через InitialDirContext.search();
Нахожу пользователя которого надо авторизовать.
Как в такой ситуации проверять пароль если атрибут UserPassword возвращается null?
Здравствуйте, gorbachev, Вы писали: G>Нахожу пользователя которого надо авторизовать. G>Как в такой ситуации проверять пароль если атрибут UserPassword возвращается null?
я работал с ActiveDirectory и сам факт возможности залогинится под заданной парой login/password считал за авторизацию. Ну SID еще у пользователя выдирал и пользуясь интеграцией со сторонней системой проверял. Если говорить про AD, то возможности просто прочитать пароль пользователя насколько помню в ней просто нет. В майкрософтовских тулзах из-за этого даже отдельные диалоги для смены пароля. Хотя я могу ошибатся.
Re: Java и LDAP
От:
Аноним
Дата:
03.11.09 09:24
Оценка:
Здравствуйте, gorbachev, Вы писали:
G>Мне надо ограничить доступ к проге на основе LDAP (Сверять введенный логин и пароль с тем что есть в LDAP.) G>Как это сделать по проще. G>Какие есть компоненты в java для работы с LDAP
Здравствуйте, gorbachev, Вы писали:
G>Мне надо ограничить доступ к проге на основе LDAP (Сверять введенный логин и пароль с тем что есть в LDAP.) G>Как это сделать по проще. G>Какие есть компоненты в java для работы с LDAP
Здравствуйте, gorbachev, Вы писали:
G>Здравствуйте, C0s, Вы писали:
G>Этот способ с одним серваком LDAP работает нормально а вот с другим нет. G>Выдается следующая ошибка.
G>
G>FailedSASL bind failed: ldap.xasax.com:636javax.naming.CommunicationException: SASL bind failed: ldap.xasax.com:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
G>
Надо OpenSSL стукнуться на порт LDAP , далее сертификат методом copy/paste с экрана копирнуть в файл, типа server.crt.
keytool -import -alias ldapserver -keyalg RSA -keystore mytruststore -storetype JKS -file server.crt
И помните — ДВА SSL контекста дефолтно не заработают. Т.е. если вы _перед_ обращением и выставлением truststore уже сползали куда по SSL, то рабтать не будет. В связи с этим предлагаю сертификаты импортить в дефолтный файл для JDK/JRE — %JDK%/%JRE%/lib/security/cacerts.