LDAP (Lightweight Directory Access Protocol) — це відкритий, платформонезалежний, стандартизований галузевий протокол прикладного рівня для організації доступу та супроводу розподілених інформаційних служб каталогів через IP-мережу. Spring Boot передбачає автоконфігурацію для будь-якого сумісного LDAP-сервера, а також засоби підтримки вбудованого LDAP-сервера, що розміщується в оперативній пам'яті, з UnboundID.
LDAP-абстракції надаються через Spring Data LDAP. Для зручного збирання залежностей існує "стартер" spring-boot-starter-data-ldap.
Підключення до LDAP-сервера
Щоб під'єднатися до LDAP-сервера, переконайся, що оголошено залежність від "стартера" spring-boot-starter-data-ldap або spring-ldap-core, а потім оголоси URL-адресу твого сервера в application.properties, як показано в наступному прикладі:
spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret
spring:
ldap:
urls: "ldap://myserver:1235"
username: "admin"
password: "secret"
Якщо потрібно налаштувати параметри підключення, можна використовувати властивості spring.ldap.base та spring.ldap.base-environment.
LdapContextSource автоматично конфігурується на основі цих параметрів. Якщо є бін DirContextAuthenticationStrategy, він прив'язується до автоконфігурованого LdapContextSource. Якщо потрібно налаштувати його, наприклад, на використання PooledContextSource, все одно можна впровадити автоконфігурований LdapContextSource. Обов'язково познач свій налаштований ContextSource як @Primary, щоб автоконфігурований LdapTemplate міг використовувати його.
Репозиторії Spring Data LDAP
Spring Data містить засоби підтримки репозиторіїв для LDAP.
Автоконфігурований екземпляр LdapTemplate можна впроваджувати так само, як і будь-який інший Spring Bean, як це показано в наступному прикладі:
@Component public class MyBean { private final LdapTemplate template; public MyBean(LdapTemplate template) { this.template = template; } }
@Component class MyBean(private val template: LdapTemplate) { }
Вбудований LDAP-сервер, що розміщується в оперативній пам'яті
Для цілей тестування Spring Boot підтримує автоконфігурування LDAP-сервера, що розміщується в оперативній пам'яті, з UnboundID. Щоб налаштувати сервер, додай залежність com.unboundid:unboundid-ldapsdk та оголоси властивість spring.ldap.embedded.base-dn, як показано нижче:
spring.ldap.embedded.base-dn=dc=spring,dc=io
spring:
ldap:
embedded:
base-dn: "dc=spring,dc=io"
Можна визначати кілька значень бази пошуку "base-dn", проте, оскільки відмінні імена зазвичай містять коми, їх необхідно визначати, використовуючи коректурний запис (нотацію).
У yaml-файлах можна використовувати обліковий запис yaml. У файли властивостей необхідно включити індекс як частину імені властивості:
spring.ldap.embedded.base-dn[0]=dc=spring,dc=io
spring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io
spring.ldap.embedded.base-dn:
- "dc=spring,dc=io"
- "dc=pivotal,dc=io"
За замовчуванням сервер запускається через випадковий порт, а також ініціює запуск стандартних засобів підтримки для LDAP. Встановлювати властивість spring.ldap.urls немає потреби.
Якщо в classpath є файл schema.ldif, він використовується для ініціалізації сервера. Якщо ти хочеш завантажити скрипт ініціалізації з іншого ресурсу, також можеш використовувати властивість spring.ldap.embedded.ldif.
За замовчуванням для валідації файлів у форматі LDIF використовується стандартна схема. Можна повністю відключити валідацію, встановивши властивість spring.ldap.embedded.validation.enabled. Якщо є кастомні атрибути, можна використовувати spring.ldap.embedded.validation.schema для визначення кастомних типів атрибутів або класів об'єктів.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ