هذه المقالة عبارة عن مقالة حول العمليات المتعلقة بالاتصال LDAP في سلسلة Boot Series. لا ينطوي إلا على الاستخدام الأساسي لـ ODM لتنفيذ عمليات LDAP والحذف والتعديل والبحث بسرعة بسرعة. للحصول على معلومات مفصلة حول Spring LDAP ، يرجى الرجوع إلى الوثائق الرسمية المترجمة.
الغرض من هذه المقالة: استخدم Spring Boot لإنشاء مشاريع لمساعدة القراء على تكوين وتشغيل LDAP بسرعة باستخدام SPRING LDAP. الخطوات العامة هي كما يلي:
1. إنشاء مشروع التمهيد الربيعي (حوالي دقيقة واحدة)
2. أضف ربيع LDAP التبعية في ملف pom.xml (حوالي دقيقة واحدة)
3. تكوين معلومات اتصال الربيع LDAP (حوالي دقيقة واحدة)
4. إنشاء فئات كيان كخريطة إدخال في LDAP (وظيفة تعيين ODM ، على غرار ORM)
5. طريقة كتابة طبقة الخدمة باستخدام LDAPPERMATE (حوالي 3 دقائق)
6. اكتب طبقة وحدة التحكم (حوالي 3 دقائق)
1. إنشاء مشروع التمهيد الربيعي (حوالي دقيقة واحدة)
انقر فوق ملف - جديد - مشروع في Idea
الشكل 1
كما هو موضح في الشكل أعلاه ، حدد Spring initializr على اليسار للمساعدة في تهيئة مشروع الربيع. بعد تكوين SDK ، انقر فوق التالي.
الشكل 2
بعد النقر ، كما هو موضح في الشكل 2 ، إذا قمت فقط بالتوضيح ، فيمكن إجراء الصفحة افتراضيًا ، انقر فوق التالي.
الشكل 3
كما هو موضح في الشكل 3 ، نختار الويب ، وسيتم عرض المكونات المتعلقة بالويب على الجانب الأيمن. نختار الويب على اليمين وتحديد المربع أمامه. هذا يعني أنه سيتم تقديم التبعيات المتعلقة بالويب في مشروع Boot SPRING الذي تم إنشاؤه. انقر فوق التالي.
الشكل 4
كما هو موضح في الشكل 4 ، ما عليك سوى تسميته بنفسك هنا ، انقر فوق إنهاء.
2. أضف ربيع LDAP التبعية في ملف pom.xml (حوالي دقيقة واحدة)
الشكل 5
كما هو مبين في الشكل 5 أعلاه ، انقر نقرًا مزدوجًا فوق Pom.xml في المشروع لإضافة تبعيات.
الشكل 6
كما هو موضح في الشكل 6 ، تم تحميل الملف بتبعيات من الاشتراكات في الظهر. إذا كنا نريد استخدام SPRING LDAP لتشغيل خادم LDAP ، فنحن بحاجة إلى إضافة نابض النابض-data-ldap. ستقوم هذه التبعية تلقائيًا بتحميل تبعيات الربيع-التراجع والرابح-التراجع. من بينها ، SPRING-LDAP-CORE هو التبعية الأساسية لعمليات LDAP ، في حين توفر SPRING-DATA-LDAP وظائف ODM لتبسيط العمليات. يمكننا أن نرى هاتين التبعيات في المكتبات الخارجية للمشروع ، كما هو موضح في الشكل 7:
الشكل 7
3. تكوين معلومات اتصال الربيع LDAP
الشكل 8
كما هو موضح في الشكل 8 أعلاه ، يعتمد التكوين على الإرشادات الموجودة على تكوين LDAP على موقع SPRING Boot الرسمي ، يمكنك أن ترى هنا. بعد هذا التكوين ، سيقوم Boot SPRING بقراءة التكوين تلقائيًا.
4. إنشاء فئة كيان كخريطة إدخال في LDAP
في هذا المثال ، يتم استخدام وظيفة ODM لتبسيط تشغيل LDAP بشكل كبير. لمزيد من المعلومات حول ODM ، يمكنك الرجوع إلى المستندات الرسمية المترجمة.
نقوم بإنشاء الهيكل التالي في المشروع:
الشكل 9
الآن ، نكتب فئة الكيان التي تقوم بتعيين بعضها البعض مع حزمة الإدخال. من بينهم ، هيكل LDAP الخاص بي على النحو التالي
الشكل 10
إنشاء فئة شخص جديد
package com.example.demo org.springframework.ldap.support.ldapNameBuilder ؛ import javax.naming.name ؛/** * author: geng_pool * description: * date: تم إنشاؤها في 2017/12/27 10:24 * @modified بواسطة: "o = myorg") public class person {jSonignore name dn ؛ attribute (name = "cn") private string cn ؛ attribute (name = "sn") private string sn ؛ attribute (name = "userpassword") سلسلة خاصة userPassword ؛ الشخص العام (السلسلة cn) {name dn = ldapNameBuilder.newinstance () .add ("o" ، "myorg") .add ("CN" ، CN) .build () ؛ this.dn = dn ؛ } public person () {} / * getter * / name public getDn () {return dn ؛ } السلسلة العامة getCn () {return cn ؛ } السلسلة العامة getn () {return sn ؛ } السلسلة العامة getUserPassword () {return userpassword ؛ } / * setter * / public void setdn (name dn) {this.dn = dn ؛ } public void setcn (string cn) {this.cn = cn ؛ if (this.dn == null) {name dn = ldapnameBuilder.newinstance () .add ("o" ، "myorg") .add ("CN" ، CN) .build () ؛ this.dn = dn ؛ }} public void setSn (string sn) {this.sn = sn ؛ } public void setUserPassword (string userpassword) {this.userPassword = userPassword ؛ } Override public string toString () {return "person {" + "dn =" + dn.toString () + "، cn = '" + cn +'/'' + "، sn = '" + sn +'/'' + "، userpassword = '" + userpassword +'/'' '' ؛ }}لاحظ أن entry و @ID مطلوبة. Jsonignore لا يجب الإبلاغ عن خطأ عند نقل الشخص إلى الواجهة الأمامية ، لأنه لا يمكن تحليل نوع الاسم تلقائيًا في تنسيق JSON. لاحظ أنه للراحة ، كتبت طريقة توليد قيمة DN في مُنشئ الشخص العام (سلسلة CN) {} ، وكتبت أيضًا الطريقة في setcn. بالطبع ، هناك مشكلة في تكرار الكود ، فقط تجاهلها.
5. طريقة كتابة طبقة الخدمة باستخدام ldaptemplate
في حزمة الخدمة ، قم بإنشاء فئة OdmpersonRepo جديدة
package com.example.demo.service ؛ استيراد com.example.demo.entry.person ؛ استيراد org.springframework.beans.factory.antation.autowired org.springframework.ldap.query.ldapquerybuilder.query ؛/** * author: geng_pool * description: * date: تم إنشاؤه في 2017/12/27 10:37 * modified بواسطة: */servicepublic class odmpersonrepo { الشخص العمومي إنشاء (شخص) {ldaptemplate.create (شخص) ؛ عودة الشخص } public person findbycn (String cn) {return ldaptemplate.findone (query (). حيث ("CN"). هو (cn) ، person.class) ؛ } public person ModifyPerson (person) {ldaptemplate.update (person) ؛ عودة الشخص } public void deleteperson (person) {ldaptemplate.delete (person) ؛ }}كما ترون ، تم تنفيذ عمليات الإضافة الأساسية والحذف والتعديل والبحث لنا. نحن فقط بحاجة إلى استدعاء الطريقة في ldaptemplate. لتشغيل إضافات LDAP وحذفها وتعديلاتها وعمليات البحث بحرية أكبر ، يمكنك الرجوع إلى المستندات الرسمية المترجمة.
6. اكتب طبقة وحدة التحكم
ضمن حزمة وحدة التحكم ، قم بإنشاء فئة TestController جديدة لاختبار تشغيل LDAP.
package com.example.demo.controller ؛ import com.example.demo.entry.person ؛ import com.example.demo.service.odmpersonrepo ؛ import org.springframework.beans.factory.annotation.autowired org.springframework.web.bind.annotation. * ؛/** * author: geng_pool * description: * date: تم إنشاؤه في 2017/12/27 10:50 * modified by: */ @restControllerPublic testController {autoWired privateRepoersonRepo ؛ @requestmapping (value = "/findone" ، method = requestMethod.post) public person findbycn (@requestparam (name = "cn" ، required = true) string cn) {return odmpersonrepo.findbycn (cn) ؛ } postMapping (value = "/create") الشخص العام إنشاء (requestparam (name = "cn") السلسلة cn ،@requestparam (name = "sn") sn ،@requestparam (name = "userPassword") string passpassworld) {person person = new person () ؛ person.setcn (CN) ؛ person.setsn (sn) ؛ person.setUserPassword (userPassworld) ؛ إرجاع OdmpersonRepo.Create (شخص) ؛ } postmapping (value = "/update") تحديث الشخص العام (requestparam (name = "cn") السلسلة cn ،@requestParam (name = "sn") sn ،@requestparam (name = "userPassword") string passpassworld) {person person = new person () ؛ person.setcn (CN) ؛ person.setsn (sn) ؛ person.setUserPassword (userPassworld) ؛ إرجاع OdmpersonRepo.ModifyPerson (شخص) ؛ } postmapping (value = "/delete") public void delete (requestparam (name = "cn") string cn) {person person = new person () ؛ person.setcn (CN) ؛ odmpersonrepo.deleteperson (شخص) ؛ }}في هذه المرحلة ، تم الانتهاء من العرض التوضيحي الأساسي. دعونا نختبره أدناه
امتحان
لكي يتابع الجميع الخطوات ، لن أستخدم ساعي البريد لاختبار ، ولكن اختبار الواجهة في المتصفح. و
ابدأ الحذاء الربيعي. إذا لم يكن هناك خطأ ، افتح المتصفح إلى localhost:8080/ ، اضغط F12 ، وظهر وضع المطور. ابحث عن وحدة التحكم لتسهيلنا لإرسال بيانات الاختبار.
أولا ، تقديم jquery.js. افتح jquery.js ، حدد الكل - نسخة - لصق في وحدة التحكم - أدخل ، كما هو موضح في الشكل أدناه:
الشكل 11
يظهر على أنه صحيح ، مما يعني أن التحميل ناجح. يمكننا استخدام jQuery's Ajax لاختباره.
البيانات المضافة
الشكل 12
كما هو مطلوب من قبل TestController لطبقة وحدة التحكم ، نستخدم طريقة POST على العنوان/إنشاء لتمرير البيانات CN SN أكثر
الشكل 13
في خادم LDAP ، يتم عرض البيانات المضافة أيضًا
الشكل 14
ابحث عن البيانات
الشكل 15
يمكن أيضًا العثور على البيانات بشكل صحيح بناءً على CN.
تعديل البيانات
الشكل 16
دعنا نتحقق مما إذا تم تعديل LDAP
الشكل 17
يمكنك أن ترى أنه يمكن تعديل البيانات بشكل طبيعي
حذف البيانات
الشكل 18
تحقق مما إذا كان سيتم حذف في LDAP
الشكل 19
كما ترون ، تم حذف البيانات بشكل صحيح.
تعليمات أخرى
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.