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
для визначення кастомних типів
атрибутів або класів об'єктів.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ