LDAP (Lightweight Directory Access Protocol) – ochiq, platformadan mustaqil, sanoat standartidagi qo'llash darajasidagi protokol bo'lib, IP tarmog'i orqali katalog xizmatlariga kirish va ularni qo'llab-quvvatlashni tashkil etadi. Spring Boot har qanday LDAP-server bilan avtomatik konfiguratsiyani ta'minlaydi, shuningdek, xotirada joylashgan ichki LDAP-serverni qo'llab-quvvatlash vositalariga ega bo'lgan UnboundIDdan foydalanishni o'z ichiga oladi.
LDAP-abstraktsiyalar Spring Data LDAP orqali taqdim etiladi. Bog'liqliklarni yig'ish uchun qulay bo'lgan "starter" spring-boot-starter-data-ldap mavjud.
LDAP-serverga ulanish
LDAP-serverga ulanish uchun, siz "starter" spring-boot-starter-data-ldap yoki spring-ldap-coredan foydalanayotganingizni e'lon qilganingizga ishonch hosil qiling va keyin application.properties faylida server URL-manzilingizni quyidagi misolda ko'rsatilgandek e'lon qiling:
spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret
spring:
ldap:
urls: "ldap://myserver:1235"
username: "admin"
password: "secret"
Agar ulanish parametrlarini sozlashingiz kerak bo'lsa, spring.ldap.base va spring.ldap.base-environment xususiyatlaridan foydalanishingiz mumkin.
LdapContextSource avtomatik ravishda ushbu parametrlar asosida konfiguratsiya qilinadi. Agar DirContextAuthenticationStrategy bo'linmasi mavjud bo'lsa, u avtomatik konfiguratsiya qilingan LdapContextSourcega biriktiriladi. Agar uni, masalan, PooledContextSourcedan foydalangan holda sozlamoqchi bo'lsangiz, avtomatik konfiguratsiya qilingan LdapContextSourceni qo'shishingiz mumkin. Sozlangan ContextSourceni @Primary deb belgilashingiz kerak bo'ladi, shunda avtomatik konfiguratsiya qilingan LdapTemplate uni ishlata oladi.
Spring Data LDAP Repozitoriyalari
Spring Data LDAP uchun repozitoriyalarni qo'llab-quvvatlash vositalariga ega.
Avtomatik konfiguratsiya qilingan LdapTemplate misolini boshqa Spring Bean'lardek kiritishingiz mumkin, quyidagi misolda ko'rsatilganidek:
@Component public class MyBean { private final LdapTemplate template; public MyBean(LdapTemplate template) { this.template = template; } }
@Component class MyBean(private val template: LdapTemplate) { }
Xotirada joylashgan ichki LDAP-server
Test uchun Spring Boot UnboundIDdan foydalanib xotirada joylashgan LDAP-serverni avtomatik konfiguratsiyasini qo'llab-quvvatlaydi. Serverni sozlash uchun, com.unboundid:unboundid-ldapsdk bog'liqligini qo'shing va quyida ko'rsatilgandek spring.ldap.embedded.base-dn xususiyatini e'lon qiling:
spring.ldap.embedded.base-dn=dc=spring,dc=io
spring:
ldap:
embedded:
base-dn: "dc=spring,dc=io"
Bir nechta bazani izlash uchun "base-dn" qiymatlarini belgilashingiz mumkin, ammo, ajralish nomi odatda vergullarni o'z ichiga oladi, shuning uchun ularni to'g'ri yozuv (notation) foydalanib belgilashingiz kerak.
Yaml-fayllarda yamlning ro'yhat shaklidan foydalanishingiz mumkin. Xususiyat fayllarida indeksni xususiyat nomining bir qismi sifatida kiritishingiz kerak:
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"
Odatiy holatda server tasodifiy port orqali ishlaydi, shuningdek LDAPni qo'llab-quvvatlashning standart vositalari ham ishga tushiriladi. spring.ldap.urls xususiyatini belgilashingiz shart emas.
Agar classpathda schema.ldif fayli mavjud bo'lsa, u serverni boshlash uchun ishlatiladi. Agar boshqa resursdan yuklab olishni xohlasangiz, spring.ldap.embedded.ldif xususiyatidan foydalanishingiz mumkin.
Odatiy holatda LDIF formatidagi fayllarni tekshirish uchun standart sxema ishlatiladi. Validatsiyani to'liq o'chirib qo'yish uchun spring.ldap.embedded.validation.enabled xususiyatini belgilashingiz mumkin. Agar sizda maxsus atributlar bo'lsa, maxsus atribut turlari yoki obyekt sinflarini aniqlash uchun spring.ldap.embedded.validation.schema xususiyatidan foydalanishingiz mumkin.
GO TO FULL VERSION