この記事は、Spring BootシリーズのLDAP接続関連操作に関する記事です。 LDAPの追加、削除、変更、および検索操作を迅速に実装するためのODMの基本的な使用のみが含まれます。 Spring LDAPの詳細については、翻訳された公式文書を参照してください。
この記事の目的:Spring Bootを使用してプロジェクトを構築して、読者がSpring LDAPを使用してLDAPをすばやく構成および操作できるようにします。一般的な手順は次のとおりです。
1.スプリングブートプロジェクトを作成する(約1分)
2。POM.XMLファイルにスプリングLDAP依存関係を追加します(約1分)
3.スプリングLDAP接続情報を構成(約1分)
4。LDAPのエントリマップとしてエンティティクラスを作成します(ORMと同様のODMマッピング関数)
5。ldaptemplateを使用したサービスレイヤーを作成する方法(約3分)
6。コントローラーレイヤーを書きます(約3分)
1.スプリングブートプロジェクトを作成する(約1分)
[ファイル] - 新しい - プロジェクトのIDEAをクリックします
図1
上の図に示すように、左側のSpring Intializrを選択して、Springプロジェクトの初期化を支援します。 SDKを構成したら、[次へ]をクリックします。
図2
図2に示すように、クリックした後、デモを行うだけの場合、デフォルトでページを実行できます。[次へ]をクリックします。
図3
図3に示すように、Webを選択し、Webに関連するコンポーネントが右側に表示されます。右側のWebを選択し、その前のボックスをチェックします。これは、Web関連の依存関係が作成されたSpring Bootプロジェクトで導入されることを意味します。 [次へ]をクリックします。
図4
図4に示すように、ここで自分で名前を付けるだけで、[完了]をクリックします。
2。POM.XMLファイルにスプリングLDAP依存関係を追加します(約1分)
図5
上記の図5に示すように、プロジェクトのpom.xmlをダブルクリックして依存関係を追加します。
図6
図6に示すように、ファイルにはSpring-Boot-Starter-Web依存関係がロードされています。 Spring LDAPを使用してLDAPサーバーを操作する場合は、Spring-Boot-Starter-Data-LDAPを追加する必要があります。この依存関係は、Spring-Ldap-CoreおよびSpring-Data-LDAP依存関係を自動的にロードします。その中でも、Spring-Ldap-CoreはLDAP操作のコア依存性ですが、Spring-Data-LDAPはODM関数を提供して操作を簡素化します。次の図7に示すように、プロジェクトの外部ライブラリにこれらの2つの依存関係を確認できます。
図7
3.スプリングLDAP接続情報を構成します
図8
上記の図8に示すように、構成は公式Spring Boot WebサイトのLDAP構成の指示に基づいているので、こちらをご覧ください。この構成の後、Spring Bootは構成を自動的に読み取ります。
4. LDAPのエントリマップとしてエンティティクラスを作成します
この例では、ODM関数を使用して、LDAPの動作を大幅に簡素化します。 ODMの詳細については、翻訳された公式文書を参照できます。
プロジェクトで次の構造を作成します。
図9
次に、エントリパッケージで互いにマッピングするエンティティクラスを書きます。その中で、私のLDAP構造は次のとおりです
図10
新しい人クラスを作成します
パッケージcom.example.demo.entry; import com.fasterxml.jackson.annotation.jsonignore; Import org.springframework.ldap.odm.annotations.attribute; import org.springframework.ldap.odm.annotations.entry; Import org.springframework.dap.odm.annotations.id; org.springframework.ldap.support.ldapnamebuilder; import javax.naming.name;/** * @author:geng_pool * @description: * @date:2017/12/27 10:24 * @modified by: */ @entry(objectclasses = "" "" "" "" "" "" "" "" "" " 「o = myorg」)パブリッククラスの人{@id @jsonignore plivate name dn; @attribute(name = "cn")private string cn; @attribute(name = "sn")プライベート文字列sn; @attribute(name = "userpassword")private string userpassword; public Person(string cn){name dn = ldapnamebuilder.newinstance().add( "o"、 "myorg").add( "cn"、cn).build(); this.dn = dn; } public person(){} / * getter * / public name getdn(){return dn; } public string getcn(){return cn; } public string getsn(){return sn; } public String 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形式に自動的に解析できないため、フロントエンドに渡すときにエラーを報告しないことです。便宜上、私はパブリックパーソン(String CN){}コンストラクターにDN値生成方法を書き、SetCNにメソッドを書きました。もちろん、コードの複製の問題があります。それを無視するだけです。
5。LDAPTEMPLATEを使用したサービスレイヤーを書き込む方法
サービスパッケージで、新しいODMPersonRepoクラスを作成します
パッケージcom.example.demo.service; Import com.example.demo.entry.person; Import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ldap.core.ldaptemplate; Import org.springframework.Sterteotie.Service org.springframework.ldap.query.ldapquerybuilder.query;/** * @author:geng_pool * @description: * @date:2017/12/27 10:37 * @modified by: */ @ @ @ @ @service -public class odmpersonRepo {@autowired private private laptemplate; public Person create(人){ldaptemplate.create(person);返品者; } public Person findbycn(string cn){return ldaptemplate.findone(query()。where( "cn")。is(cn)、person.class); } public person modifyperson(person person){ldaptemplate.update(person);返品者; } public void deleteperson(person person){ldaptemplate.delete(person); }}ご覧のとおり、基本的な追加、削除、変更、および検索操作が実装されています。 ldaptemplateでメソッドを呼び出す必要があります。 LDAPの追加、削除、変更、検索をより自由に操作するには、翻訳された公式文書を参照できます。
6.コントローラーレイヤーを書き込みます
コントローラーパッケージの下で、LDAPの操作をテストする新しいTestControllerクラスを作成します。
パッケージcom.example.demo.controller; Import com.example.demo.entry.person; Import com.example.demo.service.odmpersonrepo; Import org.springframework.factory.annotation.Autowired; Import org.spramework.ldap.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core.core Web.Bind.Annotation。 *;/** * @Author:Geng_Pool * @description: * @date:2017/12/27 10:50 * @modified by: */ @restcontrollerpublic class testcontroller {@autowired odmpersonRepo odmperoneRepo; @RequestMapping(value = "/findOne"、method = requestmethod.post)public person findbycn(@requestparam(name = "cn"、rebys = true)string cn){return odmpersonrepo.findbycn(cn); } @postmapping(value = "/create")public foren create(@requestparam(name = "cn")string cn、@requestparam(name = "sn")string sn、@requestparam(name = "userpassword")string userpassworld){person person = new person(); person.setcn(cn); person.setsn(sn); person.setuserpassword(userpassworld); return odmpersonrepo.create(person); } @postmapping(value = "/update")public person update(@requestparam(name = "cn")string cn、@requestparam(name = "sn")string sn、@requestparam(name = "userpassword")string userpassworld){person person = new person(); person.setcn(cn); person.setsn(sn); person.setuserpassword(userpassworld); return odmpersonrepo.modifyperson(person); } @postmapping(value = "/delete")public void delete(@requestparam(name = "cn")string cn){person person = new person(); person.setcn(cn); odmpersonrepo.deleteperson(person); }}この時点で、基本的なデモが完了しました。以下でテストしましょう
テスト
全員が手順に従うためには、郵便配達員を使用してテストするのではなく、ブラウザのインターフェイスをテストします。 、
スプリングブートを起動します。エラーがない場合は、ブラウザをlocalhost:8080/ 、F12を押し、開発者モードをポップアップします。コンソールコンソールを見つけて、テストステートメントを送信できるようになります。
まず、jquery.jsを紹介します。 jquery.jsを開き、すべてを選択します - コピー - コンソールに貼り付け - 以下の図に示すように、入力します。
図11
真であると示されています。つまり、荷重が成功します。 JQueryのAjaxを使用してテストできます。
追加されたデータ
図12
コントローラーレイヤーのTestControllerで必要に応じて、アドレス/作成のpostメソッドを使用してデータを渡すためにcn sn userpasswordを渡す
図13
LDAPサーバーでは、追加されたデータも表示されます
図14
データを見つけます
図15
データは、CNに基づいて正しく見つけることもできます。
データを変更します
図16
LDAPが変更されているかどうかを確認しましょう
図17
データは正常に変更できることがわかります
データを削除します
図18
LDAPで削除するかどうかを確認します
図19
ご覧のとおり、データは正しく削除されています。
その他の指示
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。