Эта статья представляет собой статью об операциях, связанных с подключением LDAP, в серии Spring Boot. Он включает в себя только основное использование ODM для быстрого реализации добавления LDAP, удаления, модификации и поиска. Для получения подробной информации о Spring LDAP, пожалуйста, обратитесь к переведенной официальной документации.
Цель данной статьи: используйте Spring Boot, чтобы создать проекты, чтобы помочь читателям быстро настроить и управлять LDAP с помощью Spring LDAP. Общие шаги следующие:
1. Создайте проект Spring Boot (около 1 минуты)
2. Добавить зависимость Spring LDAP в файле pom.xml (около 1 минуты)
3. Настройте информацию о подключении Spring LDAP (около 1 минуты)
4. Создайте классы объектов в качестве карты записи в LDAP (функция отображения ODM, аналогично ORM)
5. Метод написания сервисного слоя с использованием ldaptemplate (около 3 минут)
6. Напишите слой контроллера (около 3 минут)
1. Создайте проект Spring Boot (около 1 минуты)
Нажмите Файл - Новый - Проект в идее
Рисунок 1
Как показано на рисунке выше, выберите Spring Initiazr слева, чтобы инициализировать Spring Project. После настройки SDK нажмите Далее.
Рисунок 2
После нажатия, как показано на рисунке 2, если вы просто сделаете демонстрацию, страница может быть сделана по умолчанию, нажмите Далее.
Рисунок 3
Как показано на рисунке 3, мы выбираем Интернет, и компоненты, связанные с Интернетом, будут отображаться на правой стороне. Мы выбираем сеть справа и устанавливаем флажок перед ним. Это означает, что связанные с Интернетом зависимости будут введены в созданный проект Spring Boot. Нажмите Далее.
Рисунок 4
Как показано на рисунке 4, просто назовите его сами здесь, нажмите «Закончить».
2. Добавить зависимость Spring LDAP в файле pom.xml (около 1 минуты)
Рисунок 5
Как показано на рисунке 5 выше, дважды щелкните pom.xml в проекте, чтобы добавить зависимости.
Рисунок 6
Как показано на рисунке 6, файл был загружен с зависимостью от пружины-буте-стартера-пакета. Если мы хотим использовать Spring LDAP для работы на сервере LDAP, нам нужно добавить Spring-Boot-Starter-DATA-LDAP. Эта зависимость автоматически загружает зависимости пружинного листа и пружин-дата-LDAP. Среди них Spring-LDAP-ядер является основной зависимостью операций LDAP, в то время как Spring-DATA-LDAP предоставляет функции ODM для упрощения операций. Мы можем увидеть эти две зависимости во внешних библиотеках проекта, как показано на следующем рисунке 7:
Рисунок 7
3. Настройка информации об соединении Spring LDAP
Рисунок 8
Как показано на рисунке 8 выше, конфигурация основана на инструкциях по конфигурации LDAP на официальном веб -сайте Spring Boot, вы можете увидеть здесь. После этой конфигурации Spring Boot автоматически прочитает конфигурацию.
4. Создайте класс объектов в качестве карты записи в LDAP
В этом примере функция ODM используется для значительного упрощения работы LDAP. Для получения дополнительной информации о ODM вы можете обратиться к переведенным официальным документам.
Мы создаем следующую структуру в проекте:
Рисунок 9
Теперь мы пишем класс объектов, который отображает друг друга с помощью пакета записи. Среди них моя структура LDAP выглядит следующим образом
Рисунок 10
Создать новый класс человека
пакет com.example.demo.entry; import com.fasterxml.jackson.annotation.jsonignore; import org.springframework.ldap.odm.annotation.attribute; импорт org.springframework.ldap.odm.annotation. org.springframework.ldap.support.ldapnamebuilder; import javax.naming.name;/** * @author: geng_pool * @description: * @date: создан в 2017/12/27 10:24 * @modified by: */ @entry (objectclass = {"" Организационное лицо "," = "/inptry (objectclass = {" ",", "inty", "/neport (objectclasses = {" "," inty ","/neport ". "O = myorg") Public Class Person {@ID @Jsonignore частное имя dn; @Attribute (name = "cn") частная строка cn; @Attribute (name = "sn") частная строка sn; @Attribute (name = "userpassword") private String userPassword; Public Person (String cn) {name dn = ldapnamebuilder.newinstance () .add ("o", "myorg") .add ("cn", cn) .build (); this.dn = dn; } public Person () {} / * Getter * / public name getDn () {return dn; } public String getCn () {return cn; } public String getSn () {return sn; } public String getUserPassword () {return userpassword; } / * setter * / public void setdn (name dn) {this.dn = dn; } public void setcn (String cn) {this.cn = cn; if (this.dn == null) {name dn = ldapnamebuilder.newinstance () .add ("o", "myorg") .add ("cn", cn) .build (); this.dn = dn; }} public void setsn (String sn) {this.sn = sn; } public void setUserPassword (String userPassword) {this.userPassword = userPassword; } @Override public String toString () {return "person {" + "dn =" + dn.toString () + ", cn = '" + cn +'/'' + ", sn = '" + sn +'/'' + ", userpass warps = '" + userpassword +'/'' + '}'; }}Обратите внимание, что @Entry и @ID требуются. @Jsonignore не должен сообщать об ошибке при передаче человека к передней части, потому что тип имени не может быть автоматически проанализирован в формат JSON. Обратите внимание, что для удобства я написал метод генерации значений DN в конструкторе Public Person (String CN) {}, а также написал метод в SETCN. Конечно, есть проблема дублирования кода, просто игнорируйте ее.
5. Метод написания сервисного уровня с использованием ldaptemplate
В пакете обслуживания создайте новый класс odmpersonrepo
пакет com.example.demo.service; import com.example.demo.entry.person; import org.springframework.beans.factory.annotation.autowired; импорт org.springframework.ldap.core.ldaptemptat org.springframework.ldap.query.ldapquerybuilder.query;/** * @author: geng_pool * @description: * @date: создан в 2017/12/27 10:37 * @modified by: */ @servicepublic class odmpersonrepo {@autowvired private ldaptateTatrate; общественный человек создать (человек) {ldaptemplate.create (человек); возвращающийся человек; } public findbycn (String cn) {return ldaptemplate.findone (query (). где ("cn"). Is (cn), person.class); } public modifyperson (человек) {ldaptemplate.update (человек); возвращающийся человек; } public void deleteperson (человек) {ldaptemplate.delete (человек); }}Как вы можете видеть, для нас были реализованы базовые добавление, удаление, модификация и поисковые операции. Нам просто нужно вызвать метод в Ldaptemplate. Чтобы использовать дополнения LDAP, удаления, модификации и поиск более свободно, вы можете ссылаться на переведенные официальные документы.
6. Напишите слой контроллера
В пакете контроллера создайте новый класс TestController для проверки работы LDAP.
пакет com.example.demo.controller; import com.example.demo.entry.person; import com.example.demo.service.odmpersonrepo; import org.springframework.beans.factory.annotation.autowired; импорт org.spramework.core.ldaptratement. org.springframework.web.bind.annotation. *;/** * @author: geng_pool * @description: * @date: создан в 2017/12/27 10:50 * @modified by: */ @ @restcontrollerpublic classcontroller {@autowired private odmpersonpo odmpersonRepo; @Requestmapping (value = "/findOne", method = requestMethod.post) public findbycn (@requestparam (name = "cn", required = true) string cn) {return odmpersonrepo.findbycn (cn); } @Postmapping (value = "/create") public perform create (@requestparam (name = "cn") string cn,@requestparam (name = "sn") string sn,@requestparam (name = "userpassword") string userpassworld) {person person = new person (); person.setcn (cn); Person.setsn (sn); Person.setuserPassword (userPassworld); вернуть odmpersonrepo.create (человек); } @Postmapping (value = "/update") обновление общественного человека (@RequestParam (name = "cn") String cn,@requestParam (name = "sn") string sn,@requestparam (name = "userpassword") string userpassworld) {person person = new Person (); person.setcn (cn); Person.setsn (sn); Person.setuserPassword (userPassworld); вернуть odmpersonrepo.modifyperson (человек); } @Postmapping (value = "/delete") public void delete (@requestparam (name = "cn") string cn) {Person Person = new Person (); person.setcn (cn); odmpersonrepo.deleteperson (человек); }}На этом этапе была завершена базовая демонстрация. Давайте проверим это ниже
тест
Чтобы все могли выполнить шаги, я не буду использовать почтальона для тестирования, но проверяю интерфейс в браузере. В
Начать весенний ботинок. Если ошибки нет, откройте браузер для localhost:8080/ , нажмите F12 и разложите режим разработчика. Найдите консольную консоль, чтобы помочь нам отправить тестовые заявления.
Во -первых, представить jQuery.js. Откройте jQuery.js, выберите All - Copy - вставьте в консоли - Enter, как показано на рисунке ниже:
Рисунок 11
Показано как истинное, что означает, что загрузка успешна. Мы можем использовать jQuery's Ajax, чтобы проверить его.
Добавлены данные
Рисунок 12
Как того требует TestController уровня контроллера, мы используем метод POST на адресе/создать для передачи данных CN CN SN SN UserPass Word Over
Рисунок 13
На сервере LDAP добавленные данные также отображаются
Рисунок 14
Найти данные
Рисунок 15
Данные также могут быть правильно найдены на основе CN.
Изменить данные
Рисунок 16
Давайте проверем, изменяется ли LDAP
Рисунок 17
Вы можете видеть, что данные могут быть изменены нормально
Удалить данные
Рисунок 18
Проверьте, удалить ли в LDAP
Рисунок 19
Как видите, данные были удалены правильно.
Другие инструкции
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.