Мне нужно сохранить пароль на сервере ldap с помощью java-кода. Мне нужно указать любой из методов шифрования, доступных из ldap при хранении пароля. Как это сделать?
1) Сохранить пароль в char [] вместо String Строки неизменяемы в Java, и вы не можете стереть содержимое String, потому что любая модификация в String приведет к созданию новой String. Также строки кэшируются в пуле String, что создает угрозу безопасности для раскрытия пароля в текстовом виде любому, у кого есть доступ к памяти java-приложения. даже авария, подобная дампу ядра java-приложения, создание дампа памяти в /tmp может помещать пароли в реальную угрозу. используя char [], вы можете стереть конюшни, установив его пустым или любым другим символом, что снижает риск безопасности при открытии пароля. См. Почему char char лучше, чем String для хранения пароля в Java для более подробной информации
2) Всегда используйте зашифрованный пароль в приложении. Это еще один шаг от более раннего совета, вместо того, чтобы хранить пароль или конфиденциальную информацию в открытом тексте, всегда сохраняйте их в зашифрованном или хешированном формате. Это снижает риск разоблачения пароля любому незнакомому человеку, у кого есть доступ к памяти приложения во время выполнения проверки подлинности.
Подробнее: http://javarevisited.blogspot.com/2012/05/best-practices-while-dealing-with.html#ixzz3KGjhHlps
new BasicAttribute("password", passValue)
я думаю, мы не хотим указывать..it автоматически шифровать в конфигурацию ldap
Когда вы вставляете новую запись в LDAP через JNDI, вам нужно создать запись, указав всю ее иерархию объектов. Для inetOrgPerson пароль имеет атрибут под названием userPassword (необязательный атрибут в объекте "человек" в основной схеме.
Вы должны создать несколько атрибутов (в объекте BasicAttributes), как в соответствии с схемами (включая мета атрибуты, такие как NAME, SUP, STRUCTURAL и т.д., Ссылаться на URLS для структуры схемы) в вашей схеме case, core и inetOrgPerson:
http://www.zytrax.com/books/ldap/ape/inetorgperson.html http://www.zytrax.com/books/ldap/ape/core-schema.html#organizationalperson
После того как вы подготовили объект, пользователь context.rebind
ПРИМЕЧАНИЕ. Все реализации LDAP различны, и вы можете получить некоторые неожиданные результаты, например, в приведенном выше методе вы получите дополнительные атрибуты (рабочие атрибуты без LDAP) в связанном объекте в Apace DS. Обходной путь заключается в использовании API Apache LDAP (см. Http://directory.apache.org/api/). В MS ActiveDirectory вы можете столкнуться с другими проблемами. JNDI хорошо читает записи, но не очень хорош для записи/ввода записей