Artikel ini adalah artikel tentang operasi terkait koneksi LDAP dalam seri Spring Boot. Ini hanya melibatkan penggunaan dasar ODM untuk dengan cepat mengimplementasikan penambahan LDAP, penghapusan, modifikasi dan operasi pencarian. Untuk informasi terperinci tentang Spring LDAP, silakan merujuk ke dokumentasi resmi yang diterjemahkan.
Tujuan artikel ini: Gunakan Spring Boot untuk membangun proyek untuk membantu pembaca dengan cepat mengonfigurasi dan mengoperasikan LDAP menggunakan Spring LDAP. Langkah -langkah umum adalah sebagai berikut:
1. Buat Proyek Boot Musim Semi (sekitar 1 menit)
2. Tambahkan ketergantungan LDAP pegas dalam file pom.xml (sekitar 1 menit)
3. Konfigurasikan Informasi Koneksi LDAP Musim Semi (sekitar 1 menit)
4. Buat kelas entitas sebagai peta entri di LDAP (fungsi pemetaan ODM, mirip dengan ORM)
5. Metode Penulisan Lapisan Layanan Menggunakan Ldaptemplate (sekitar 3 menit)
6. Tulis lapisan pengontrol (sekitar 3 menit)
1. Buat Proyek Boot Musim Semi (sekitar 1 menit)
Klik File - Baru - Proyek di Ide
Gambar 1
Seperti yang ditunjukkan pada gambar di atas, pilih Spring Initiizr di sebelah kiri untuk membantu menginisialisasi proyek Spring. Setelah mengkonfigurasi SDK, klik Next.
Gambar 2
Setelah mengklik, seperti yang ditunjukkan pada Gambar 2, jika Anda hanya melakukan demo, halaman dapat dilakukan secara default, klik Next.
Gambar 3
Seperti yang ditunjukkan pada Gambar 3, kami memilih web, dan komponen yang terkait dengan web akan ditampilkan di sisi kanan. Kami memilih web di sebelah kanan dan mencentang kotak di depannya. Ini berarti bahwa dependensi terkait web akan diperkenalkan dalam proyek Spring Boot yang dibuat. Klik Berikutnya.
Gambar 4
Seperti yang ditunjukkan pada Gambar 4, sebutkan saja di sini, klik Selesai.
2. Tambahkan ketergantungan LDAP pegas dalam file pom.xml (sekitar 1 menit)
Gambar 5
Seperti yang ditunjukkan pada Gambar 5 di atas, klik dua kali pom.xml dalam proyek untuk menambahkan dependensi.
Gambar 6
Seperti yang ditunjukkan pada Gambar 6, file telah dimuat dengan dependensi pegas-boot-starter-WEB. Jika kami ingin menggunakan Spring LDAP untuk mengoperasikan server LDAP, kami perlu menambahkan Spring-boot-starter-data-ldap. Ketergantungan ini secara otomatis akan memuat ketergantungan pegas-ld-core dan spring-data-ldap. Di antara mereka, Spring-Ldap-Core adalah ketergantungan inti dari operasi LDAP, sedangkan Spring-Data-Ldap menyediakan fungsi ODM untuk menyederhanakan operasi. Kita dapat melihat dua dependensi ini di perpustakaan eksternal proyek, seperti yang ditunjukkan pada Gambar 7 berikut:
Gambar 7
3. Konfigurasikan Informasi Koneksi LDAP Musim Semi
Gambar 8
Seperti yang ditunjukkan pada Gambar 8 di atas, konfigurasi didasarkan pada instruksi pada konfigurasi LDAP di situs web Spring Boot resmi, Anda dapat melihat di sini. Setelah konfigurasi ini, Spring Boot akan secara otomatis membaca konfigurasi.
4. Buat kelas entitas sebagai peta entri di LDAP
Dalam contoh ini, fungsi ODM digunakan untuk sangat menyederhanakan pengoperasian LDAP. Untuk informasi lebih lanjut tentang ODM, Anda dapat merujuk pada dokumen resmi yang diterjemahkan.
Kami membuat struktur berikut dalam proyek:
Gambar 9
Sekarang, kami menulis kelas entitas yang memetakan satu sama lain dengan paket entri. Di antara mereka, struktur LDAP saya adalah sebagai berikut
Gambar 10
Buat kelas orang baru
Paket com.example.demo.entry; impor com.fasterxml.jackson.annotation.jsonignore; impor org.springframework.ldap.odm.annotations.attribute; impor org.spramework.ldap.odm.annotations.entry; impor org.springframework.ldap.odm.annotations. org.springframework.ldap.support.ldapNameBuilder; import javax.naming.name;/** * @author: geng_pool * @description: * @date: dibuat pada 2017/12/27 10:24 * @modified by: */ @entri (objecsclasses = {"{" @" @" "o = myorg") orang kelas publik {@id @jsonignore nama pribadi dn; @Attribute (name = "cn") Private String CN; @Attribute (name = "sn") Private String Sn; @Attribute (name = "userpassword") private string userpassword; orang publik (string cn) {nama dn = ldapNameBuilder.newinstance () .add ("o", "myorg") .add ("cn", cn) .build (); this.dn = dn; } orang publik () {} / * getter * / nama publik getDn () {return dn; } public string getCn () {return cn; } public string getsn () {return sn; } string publik getUserPassWord () {return userpassword; } / * setter * / public void setDn (nama 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 + '/' + ' +'; }}Perhatikan bahwa @entry dan @id diperlukan. @Jsonignore tidak melaporkan kesalahan saat meneruskan orang ke ujung depan, karena jenis nama tidak dapat secara otomatis diuraikan ke dalam format JSON. Perhatikan bahwa untuk kenyamanan, saya menulis metode pembuatan nilai DN di Publik (String CN) {} konstruktor, dan juga menulis metode dalam setCN. Tentu saja, ada masalah duplikasi kode, abaikan saja.
5. Metode Penulisan Lapisan Layanan Menggunakan Ldaptemplate
Di Paket Layanan, buat kelas ODMPersonRepo baru
Paket com.example.demo.service; impor com.example.demo.entry.person; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.lldap.core.ldaptemplate; impor org.springframework.shereotype.ldlorpeM; org.springframework.ldap.query.ldapQueryBuilder.query;/** * @author: geng_pool * @description: * @date: dibuat pada 2017/12/27 10:37 * @modified oleh: */ @servicePublic class odmpersonrepo {a @aplicplic @apleplic @apleplic class oDMpersonRepo {a @aplicplic @a @aplicplic orang publik membuat (orang orang) {ldaptemplate.create (orang); orang yang kembali; } orang publik findBycn (string cn) {return ldaptemplate.findone (query (). Where ("cn"). is (cn), person.class); } Public Person ModifyPerson (orang orang) {ldaptemplate.update (orang); orang yang kembali; } public void deleteperson (orang orang) {ldaptemplate.delete (orang); }}Seperti yang Anda lihat, penambahan dasar, penghapusan, modifikasi, dan operasi pencarian telah diimplementasikan untuk kami. Kita hanya perlu memanggil metode di ldaptemplate. Untuk mengoperasikan penambahan, penghapusan, modifikasi, dan pencarian LDAP secara lebih bebas, Anda dapat merujuk pada dokumen resmi yang diterjemahkan.
6. Tulis lapisan pengontrol
Di bawah paket controller, buat kelas testController baru untuk menguji operasi LDAP.
Paket com.example.demo.controller; import com.example.demo.entry.person; impor com.example.demo.service.odmpersonrepo; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.ldapap.ldap.ldap.ldap.ldapePemple; dlate -ddlate.ldape.ldape.ldap.ldap.ldap.ldap.ldap.ldape.ldape.ldpemple ;dlate org.springframework.web.bind.annotation.*;/** * @Author: geng_pool * @Description: * @Date: Created in 2017/12/27 10:50 * @Modified by: */@RestControllerpublic class testController { @Autowired private OdmPersonRepo odmPersonRepo; @RequestMapping (value = "/findOne", Method = requestMethod.post) Publik FindBycn (@RequestParam (name = "cn", wajib = true) string cn) {return odmpersonRepo.findbycn (cn); } @PostMapping (value = "/create") Publik create (@RequestParam (name = "cn") string cn,@requestParam (name = "sn") string sn,@requestParam (name = "userpassword") string userpassworld) {orang orang = orang baru (); person.setcn (cn); orang.setsn (sn); orang.setUserPassword (userpassworld); return odmpersonRepo.create (orang); } @PostMapping (value = "/update") Pembaruan orang publik (@RequestParam (name = "cn") string cn,@requestParam (name = "sn") string sn,@requestParam (name = "userpassword") string userpassworld) {orang orang = orang baru (); person.setcn (cn); orang.setsn (sn); orang.setUserPassword (userpassworld); return odmpersonRepo.modifyperson (orang); } @PostMapping (value = "/delete") public void delete (@RequestParam (name = "cn") string cn) {orang orang = orang baru (); person.setcn (cn); odmpersonRepo.deleteperson (orang); }}Pada titik ini, demo dasar telah selesai. Mari kita mengujinya di bawah ini
tes
Agar semua orang mengikuti langkah -langkah, saya tidak akan menggunakan tukang pos untuk menguji, tetapi menguji antarmuka di browser. ,
Mulai Spring Boot. Jika tidak ada kesalahan, buka browser ke localhost:8080/ , tekan F12, dan ikuti mode pengembang. Temukan konsol konsol untuk memfasilitasi kami untuk mengirim pernyataan pengujian.
Pertama, perkenalkan jQuery.js. Buka jQuery.js, pilih semua - salin - tempel di konsol - masukkan, seperti yang ditunjukkan pada gambar di bawah ini:
Gambar 11
Ditampilkan sebagai benar, yang berarti pemuatan berhasil. Kita dapat menggunakan Ajax JQuery untuk mengujinya.
Menambahkan data
Gambar 12
Seperti yang dipersyaratkan oleh TestController dari Lapisan Pengontrol, kami menggunakan metode POST pada alamat/Buat untuk meneruskan Data CN SN UserPassword Over
Gambar 13
Di server LDAP, data yang ditambahkan juga ditampilkan
Gambar 14
Temukan data
Gambar 15
Data juga dapat ditemukan dengan benar berdasarkan CN.
Memodifikasi data
Gambar 16
Mari kita periksa apakah LDAP dimodifikasi
Gambar 17
Anda dapat melihat bahwa data dapat dimodifikasi secara normal
Hapus data
Gambar 18
Periksa apakah akan menghapus di LDAP
Gambar 19
Seperti yang Anda lihat, data telah dihapus dengan benar.
Instruksi lainnya
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.