Veiledning til vårdata LDAP

1. Introduksjon

I denne artikkelen, Vi vil fokusere på vår integrering og konfigurering av Spring Data LDAP. For en trinnvis introduksjon til Spring LDAP, ta en rask titt på denne artikkelen.

Du kan også finne oversikten over Spring Data JPA guide her.

2. Maven Avhengighet

La oss begynne med å legge til de nødvendige Maven-avhengighetene:

 org.springframework.data spring-data-ldap 1.0.6.RELEASE 

De nyeste versjonene finner du her for vår-data-ldap.

3. Domeneregistrering

Våren LDAP-prosjekt gir muligheten til å kartlegge LDAP-oppføringer til Java-objekter ved hjelp av Object-Directory Mapping (ODM).

La oss definere enheten som skal brukes til å kartlegge LDAP-kataloger som allerede er konfigurert i vår LDAP-artikkel.

@Entry (base = "ou = brukere", objectClasses = {"person", "inetOrgPerson", "top"}) bruker i offentlig klasse {@Id privat navn-id; private @Attribute (name = "cn") String brukernavn; private @Attribute (name = "sn") Strengpassord; // standard getters / setters}

@Inngang den er lik @Enhet (av JPA / ORM) som brukes til å spesifisere hvilken enhet som tilordner roten til LDAP-oppføringene.

An Inngang klassen må ha @Id kommentar erklært på et felt av typen javax.naming.Name som representerer enhet DN. De @Egenskap kommentar brukes til å kartlegge objektklassefelt til enhetsfelt.

4. Spring Data Repository

Spring Data Repository er en abstraksjon som gir grunnleggende out-of-the-box klar til bruk implementering av datatilgangslag for forskjellige utholdenhetsbutikker.

Spring Framework gir internt implementering av CRUD-operasjoner for gitt klasse i datalageret. Vi finner den fullstendige detaljene i artikkelen Introduksjon til Spring Data JPA.

Spring Data LDAP gir lignende abstraksjon som gir automatisk implementering av Oppbevaringssted grensesnitt som inkluderer grunnleggende CRUD-operasjon for LDAP-kataloger.

Spring Data Framework kan også opprette et tilpasset spørsmål basert på et metodenavn.

La oss definere vårt depotgrensesnitt som skal brukes til å administrere Brukeroppføring:

@Repository offentlig grensesnitt UserRepository utvider LdapRepository {User findByUsername (String username); User findByUsernameAndPassword (String brukernavn, String passord); Liste findByUsernameLikeIgnoreCase (String brukernavn); }

Som vi kan se, har vi erklært et grensesnitt ved å utvide LdapRepository for oppføring Bruker. Spring Data Framework vil automatisk gi grunnleggende implementering av CRUD-metoden som finne(), findAll (), lagre(),slett (), etc.

Vi har også erklært noen få tilpassede metoder. Spring Data Framework vil gi implementeringen ved å undersøke metodens navn med en strategi kjent som Query Builder Mechanism.

5. Konfigurasjon

Vi kan konfigurere Spring Data LDAP ved hjelp av Java-basert @Konfigurasjon klasser eller et XML-navneområde. La oss konfigurere depotet ved hjelp av den Java-baserte tilnærmingen:

@Configuration @EnableLdapRepositories (basePackages = "com.baeldung.ldap. **") offentlig klasse AppConfig {}

@EnableLdapRepositories tips Spring for å skanne den gitte pakken etter grensesnitt merket som @Oppbevaringssted.

6. Forretningslogikk

La oss definere serviceklassen vår som skal bruke UserRepository å operere på LDAP-kataloger:

@Service offentlig klasse UserService {@Autowired privat UserRepository userRepository; // forretningsmetoder}

Nå vil vi utforske en handling av gangen og se hvor enkelt vi kan utføre denne handlingen ved hjelp av Spring Data Repository

6.1. Bruker autentisering

La oss nå implementere en enkel logikk for å autentisere en eksisterende bruker:

public Boolean authenticate (String u, String p) {return userRepository.findByUsernameAndPassword (u, p)! = null; }

6.2. Brukeroppretting

La oss deretter opprette en ny bruker og lagre passordets hash:

public void create (String username, String password) {User newUser = new User (username, digestSHA (password)); newUser.setId (LdapUtils.emptyLdapName ()); userRepository.save (newUser); }

6.3. Brukerendring

Vi kan endre en eksisterende bruker eller oppføring med følgende metode:

public void modify (String u, String p) {User user = userRepository.findByUsername (u); user.setPassword (p); userRepository.save (bruker); }

6.4. Brukersøk

Vi kan søke etter eksisterende brukere ved hjelp av en tilpasset metode:

public List search (String u) {List userList = userRepository .findByUsernameLikeIgnoreCase (u); hvis (userList == null) {returner Collections.emptyList (); } returner userList.stream () .map (bruker :: getUsername) .collect (Collectors.toList ()); }

7. Eksempel i aksjon

Til slutt kan vi raskt teste et enkelt autentiseringsscenario:

@Test offentlig ugyldig gittLdapClient_whenCorrectCredentials_thenSuccessfulLogin () {Boolean isValid = userService.authenticate (USER3, USER3_PWD); assertEquals (true, isValid); }

8. Konklusjon

Denne raske opplæringen demonstrerte det grunnleggende om vår LDAP-depotkonfigurasjon og CRUD-drift.

Eksemplet som brukes i denne artikkelen finner du på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found