מדריך לנתוני אביב LDAP

1. הקדמה

במאמר זה, אנו נתמקד בשילוב ותצורת LDAP של Spring Data. לקבלת מבוא שלב אחר שלב ל- Spring LDAP, עיין במאמר זה במהירות.

כמו כן, תוכלו למצוא את הסקירה הכללית של מדריך ה- JPA של Spring Data כאן.

2. Maven תלות

נתחיל בהוספת תלות Maven הנדרשות:

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

הגרסאות העדכניות ביותר ניתן למצוא כאן עבור spring-data-ldap.

3. הזנת דומיין

פרויקט LDAP באביב מספק יכולת למפות ערכי LDAP לאובייקטים של Java באמצעות מיפוי Object-Directory (ODM).

בואו נגדיר את הישות שתשמש למיפוי ספריות LDAP שכבר הוגדרו במאמר ה- LDAP באביב.

@Entry (base = "ou = users", objectClasses = {"person", "inetOrgPerson", "top"}) משתמש בכיתה ציבורית {@Id שם פרטי; פרטי @ Attribute (name = "cn") שם משתמש מחרוזת; פרטי @Attribute (name = "sn") סיסמת מחרוזת; // סטנדרטים / סטרים סטנדרטיים}

@כְּנִיסָה דומה ל @יֵשׁוּת (של JPA / ORM) המשמש לציון איזו ישות ממפה לשורש הספריות של ערכי LDAP.

An כְּנִיסָה הכיתה חייבת להיות @תְעוּדַת זֶהוּת ביאור שהוכרז על שדה מסוג javax.naming.Name המייצג ישות DN. ה @תְכוּנָה הערה משמשת למיפוי שדות מחלקת אובייקטים לשדות ישויות.

4. מאגר נתונים באביב

מאגר נתונים של Spring הוא הפשטה המספקת יישום בסיסי מהקופסה המוכן לשימוש ביישום שכבות גישה לנתונים עבור מאגרי התמדה שונים.

Spring Framework מספקת באופן פנימי יישום פעולות CRUD למחלקה נתונה במאגר הנתונים. אנו יכולים למצוא את הפרט המלא במאמר מבוא ל- Spring Data JPA.

Spring Data LDAP מספק הפשטה דומה המספקת יישום אוטומטי של מאגר ממשקים הכוללים פעולת CRUD בסיסית עבור ספריות LDAP.

כמו כן, Spring Data Framework יכול ליצור שאילתה מותאמת אישית המבוססת על שם שיטה.

בואו נגדיר את ממשק המאגר שלנו שישמש לניהול כניסה למשתמש:

ממשק ציבורי @ מאגר UserRepository מרחיב את LdapRepository {User findByUsername (שם משתמש מחרוזת); משתמש findByUsernameAndPassword (שם משתמש מחרוזת, סיסמת מחרוזת); רשימה findByUsernameLikeIgnoreCase (שם משתמש מחרוזת); }

כפי שאנו רואים, הכרזנו על ממשק על ידי הרחבה LdapRepository לכניסה מִשׁתַמֵשׁ. Spring Data Framework יספק באופן אוטומטי יישום שיטת CRUD בסיסי כגון למצוא(), מצא הכל(), לשמור(),לִמְחוֹק(), וכו '

כמו כן, הכרזנו על מספר שיטות מותאמות אישית. Spring Data Framework יספק את ההטמעה על ידי בדיקת שם השיטה עם אסטרטגיה המכונה Query Builder Mechanism.

5. תצורה

אנו יכולים לקבוע את תצורת ה- LDAP של Spring Data באמצעות Java מבוסס @תְצוּרָה שיעורים או מרחב שמות XML. בואו להגדיר את המאגר באמצעות הגישה מבוססת Java:

@Configuration @EnableLdapRepositories (basePackages = "com.baeldung.ldap. **") AppConfig בכיתה ציבורית {}

@EnableLdapRepositories רומז על אביב כדי לסרוק את החבילה הנתונה לממשקים המסומנים כ- מאגר @.

6. לוגיקה עסקית

בואו נגדיר את מחלקת השירות שלנו אשר תשתמש ב- UserRepository להפעלת ספריות LDAP:

@Service מחלקה ציבורית UserService {@ UserRepository UserRepository פרטי; // שיטות עסקיות}

כעת נבדוק פעולה אחת בכל פעם ונראה באיזו קלות אנו יכולים לבצע פעולות אלה באמצעות Spring Data Repository

6.1. אימות משתמש

בואו וניישם כעת חתיכת לוגיקה פשוטה לאימות משתמש קיים:

אימות בוליאני ציבורי (String u, String p) {return userRepository.findByUsernameAndPassword (u, p)! = null; }

6.2. יצירת משתמשים

לאחר מכן, בואו ניצור משתמש חדש ונאגר את חשיש הסיסמה:

בטל ציבורי ליצור (שם משתמש מחרוזת, סיסמת מחרוזת) {משתמש חדש משתמש = משתמש חדש (שם משתמש, digestSHA (סיסמה)); newUser.setId (LdapUtils.emptyLdapName ()); userRepository.save (newUser); }

6.3. שינוי משתמש

אנו יכולים לשנות משתמש או ערך קיים בשיטה הבאה:

שינוי חלל ציבורי (מחרוזת u, מחרוזת p) {משתמש משתמש = userRepository.findByUsername (u); user.setPassword (p); userRepository.save (user); }

6.4. חיפוש משתמשים

אנו יכולים לחפש משתמשים קיימים בשיטה מותאמת אישית:

חיפוש רשימה ציבורית (מחרוזת u) {List userList = userRepository .findByUsernameLikeIgnoreCase (u); if (userList == null) {return Collections.emptyList (); } להחזיר userList.stream () .map (משתמש :: getUsername) .collect (Collectors.toList ()); }

7. דוגמא בפעולה

לבסוף, אנו יכולים לבדוק במהירות תרחיש אימות פשוט:

@Test הציבור בטל givenLdapClient_whenCorrectCredentials_thenSuccessfulLogin () {בוליאני isValid = userService.authenticate (USER3, USER3_PWD); assertEquals (נכון, isValid); }

8. מסקנה

הדרכה מהירה זו הדגימה את היסודות של תצורת מאגר LDAP של Spring ופעולת CRUD.

ניתן למצוא את הדוגמה המשמשת במאמר זה ב- GitHub.


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