Útmutató a tavaszi adatok LDAP-hoz

1. Bemutatkozás

Ebben a cikkben, a Spring Data LDAP integrációjára és konfigurálására összpontosítunk. A tavaszi LDAP lépésről lépésre történő bemutatásához olvassa el gyorsan ezt a cikket.

A Spring Data JPA útmutató áttekintését itt is megtalálja.

2. Maven Függőség

Kezdjük a szükséges Maven-függőségek hozzáadásával:

 org.springframework.data spring-data-ldap 1.0.6.KÖZLEMÉNY 

A spring-data-ldap legfrissebb verziói itt találhatók.

3. Domainbejegyzés

A tavaszi LDAP projekt lehetővé teszi az LDAP bejegyzések Java objektumokhoz való leképezését az Object-Directory Mapping (ODM) használatával.

Határozzuk meg azt az entitást, amelyet az LDAP könyvtárak feltérképezésére használunk, amelyeket már beállítottunk a tavaszi LDAP cikkben.

@Entry (base = "ou = users", objectClasses = {"person", "inetOrgPerson", "top"}) public class User {@Id private Name id; private @Attribute (name = "cn") Karakterlánc felhasználónév; private @Attribute (name = "sn") Karakterlánc jelszó; // szokásos getters / setters}

@Belépés hasonló @Entity (a JPA / ORM-ből), amely meghatározza, hogy mely entitás hozzárendelje az LDAP-bejegyzések könyvtárgyökerét.

An Belépés osztálynak rendelkeznie kell @Id javax típusú mezőben deklarált kommentár.nevezés.Név amely entitást képvisel DN. A @Tulajdonság annotációt használnak az objektumosztály mezők entitásmezőkhöz való hozzárendeléséhez.

4. Tavaszi adattár

A Spring Data Repository egy absztrakció, amely alapvető készenléti használatra kész adat-hozzáférési rétegek implementálását biztosítja a különböző perzisztencia-tárolók számára.

A Spring Framework belsőleg biztosítja a CRUD műveletek végrehajtását adott osztály számára az adattárban. A teljes részletet a Bevezetés a Spring Data JPA cikkbe találjuk.

A Spring Data LDAP hasonló absztrakciót biztosít, amely biztosítja az Adattár olyan interfészek, amelyek alapvető CRUD műveletet tartalmaznak az LDAP könyvtárakhoz.

Ezenkívül a Spring Data Framework létrehozhat egy egyéni lekérdezést a metódus neve alapján.

Határozzuk meg a tároló felületünket, amelyet a kezeléshez használunk Felhasználói bejegyzés:

@Repository nyilvános felület A UserRepository kiterjeszti az LdapRepository {User findByUsername (String felhasználónév); Felhasználó findByUsernameAndPassword (String felhasználónév, String jelszó); Sorolja fel a findByUsernameLikeIgnoreCase (String felhasználónév) listát; }

Mint láthatjuk, kiterjesztéssel deklaráltunk egy interfészt LdapRepository a belépéshez Felhasználó. A Spring Data Framework automatikusan biztosítja az alapvető CRUD-módszerek megvalósítását, mint pl megtalálja(), Találd meg mindet(), mentés(),töröl(), stb.

Néhány egyedi módszert is deklaráltunk. A Spring Data Framework biztosítja a megvalósítást a módszer nevének a Query Builder Mechanism néven ismert stratégiával történő tesztelésével.

5. Konfiguráció

A Spring Data LDAP-t Java-alapú használatával konfigurálhatjuk @ Konfiguráció osztályok vagy egy XML névtér. Konfiguráljuk az adattárat a Java alapú megközelítéssel:

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

@EnableLdapRepositories javasolja Spring-et, hogy az adott csomagot átkutassa a @Raktár.

6. Üzleti logika

Határozzuk meg a szolgáltatási osztályunkat, amely a UserRepository az LDAP könyvtárak működtetése:

@Service public class UserService {@Autowired private UserRepository userRepository; // üzleti módszerek}

Most egyszerre egy műveletet fogunk felfedezni, és megnézzük, milyen egyszerűen tudjuk végrehajtani ezeket a műveleteket a Spring Data Repository segítségével

6.1. Felhasználói hitelesítés

Vezessünk be egy egyszerű logikai elemet egy meglévő felhasználó hitelesítéséhez:

nyilvános logikai hitelesítés (u karakterlánc, p karakterlánc) {return userRepository.findByUsernameAndPassword (u, p)! = null; }

6.2. Felhasználó létrehozása

Ezután hozzunk létre egy új felhasználót, és tároljuk a jelszó kivonatát:

public void create (String felhasználónév, String jelszó) {Felhasználó newUser = új Felhasználó (felhasználónév, digestSHA (jelszó)); newUser.setId (LdapUtils.emptyLdapName ()); userRepository.save (newUser); }

6.3. Felhasználó módosítása

Meglévő felhasználót vagy bejegyzést a következő módszerrel módosíthatunk:

public void modify (String u, String p) {Felhasználói felhasználó = userRepository.findByUsername (u); user.setPassword (p); userRepository.save (felhasználó); }

6.4. Felhasználói keresés

Meglévő felhasználókat egyedi módszerrel kereshetünk:

nyilvános Listakeresés (u karakterlánc) {List userList = userRepository .findByUsernameLikeIgnoreCase (u); if (userList == null) {return Gyűjtemények.emptyList (); } return userList.stream () .map (Felhasználó :: getUsername) .collect (Collectors.toList ()); }

7. Példa a cselekvésben

Végül gyorsan tesztelhetünk egy egyszerű hitelesítési forgatókönyvet:

@Test public void givenLdapClient_whenCorrectCredentials_thenSuccessfulLogin () {Logikai isValid = userService.authenticate (USER3, USER3_PWD); assertEquals (true, isValid); }

8. Következtetés

Ez a gyors bemutató bemutatta a Spring LDAP repository konfigurálásának és a CRUD működésének alapjait.

Az ebben a cikkben használt példa a GitHub oldalon található.