Ú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ó.