Este artigo é um artigo sobre operações relacionadas à conexão LDAP na série Spring Boot. Ele envolve apenas o uso básico do ODM para implementar rapidamente as operações de adição, exclusão, modificação e pesquisa de LDAP. Para obter informações detalhadas sobre o Spring LDAP, consulte a documentação oficial traduzida.
O objetivo deste artigo: Use a Spring Boot para criar projetos para ajudar os leitores a configurar e operar rapidamente o LDAP usando o Spring LDAP. As etapas gerais são as seguintes:
1. Crie o projeto de inicialização da primavera (cerca de 1 minuto)
2. Adicione a dependência do Spring LDAP no arquivo pom.xml (cerca de 1 minuto)
3. Configure informações de conexão Spring LDAP (cerca de 1 minuto)
4. Crie classes de entidade como mapa de entrada no LDAP (função de mapeamento ODM, semelhante ao ORM)
5. Método de escrita Camada de serviço usando LDAPTEMPLAT (cerca de 3 minutos)
6. Escreva a camada do controlador (cerca de 3 minutos)
1. Crie o projeto de inicialização da primavera (cerca de 1 minuto)
Clique em Arquivo - Novo - Projeto na Ideia
Figura 1
Conforme mostrado na figura acima, selecione Spring Initializr à esquerda para ajudar a inicializar o projeto da mola. Depois de configurar o SDK, clique em Avançar.
Figura 2
Depois de clicar, como mostrado na Figura 2, se você apenas fizer demonstração, a página poderá ser feita por padrão, clique em Avançar.
Figura 3
Conforme mostrado na Figura 3, selecionamos a Web e os componentes relacionados à Web serão exibidos no lado direito. Selecionamos a Web à direita e verificamos a caixa na frente dela. Isso significa que as dependências relacionadas à Web serão introduzidas no projeto de inicialização da primavera criada. Clique em Avançar.
Figura 4
Conforme mostrado na Figura 4, apenas nomeie -o aqui, clique em Concluir.
2. Adicione a dependência do Spring LDAP no arquivo pom.xml (cerca de 1 minuto)
Figura 5
Conforme mostrado na Figura 5 acima, clique duas vezes em Pom.xml no projeto para adicionar dependências.
Figura 6
Conforme mostrado na Figura 6, o arquivo foi carregado com dependências da Web Spring-Boot-Starter. Se quisermos usar o Spring LDAP para operar o servidor LDAP, precisamos adicionar Spring-Boot-Starter-Data-LDAP. Essa dependência carregará automaticamente as dependências Spring-LDAP-Core e Spring-Data-LDAP. Entre eles, o Spring-LDAP-Core está a principal dependência das operações de LDAP, enquanto o Spring-Data-LDAP fornece funções ODM para simplificar as operações. Podemos ver essas duas dependências nas bibliotecas externas do projeto, conforme mostrado na Figura 7:
Figura 7
3. Configure informações de conexão Spring LDAP
Figura 8
Conforme mostrado na Figura 8 acima, a configuração é baseada nas instruções na configuração LDAP no site oficial da Spring Boot, você pode ver aqui. Após essa configuração, a Spring Boot lerá automaticamente a configuração.
4. Crie a classe de entidade como mapa de entrada no LDAP
Neste exemplo, a função ODM é usada para simplificar bastante a operação do LDAP. Para obter mais informações sobre o ODM, você pode consultar os documentos oficiais traduzidos.
Criamos a seguinte estrutura no projeto:
Figura 9
Agora, escrevemos a classe de entidade que mapeia um ao outro com o pacote de entrada. Entre eles, minha estrutura LDAP é a seguinte
Figura 10
Crie uma nova aula de pessoa
pacote com.example.demo.entry; importação com.fasterxml.jackson.annotation.jsonignore; importar org.springframework.ldap.odm.annotações.attribute; importação org.springframework.ldap.odm.annotations.entry; importação org.sPringFramework.ldap.ldap.ldap.odm.annotations; importação; org.springframework.ldap.support.ldapnamebuilder; importar javax.naming.name;/** * @author: geng_pool * @Description: * @Date: Criado em 2017/12/27 10:24 * @Modified por: "/ @Entry (objeto 2017 "O = Myorg") Pessoa da classe pública {@id @jsonignore nome privado dn; @Attribute (name = "cn") private string cn; @Attribute (name = "sn") private string sn; @Attribute (name = "userpassword") private string userpasspord; pessoa pública (string cn) {nome dn = ldapNamebuilder.newInstance () .add ("o", "myorg") .add ("cn", cn) .build (); this.dn = dn; } public Person () {} / * getter * / public nome getdn () {return dn; } public string getCn () {return cn; } public string getsn () {return sn; } public string getUserpassword () {return userpassword; } / * setter * / public void setDn (nome dn) {this.dn = dn; } public void setcn (string cn) {this.cn = cn; if (this.dn == null) {nome 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 }}Observe que @entry e @id são necessários. @Jsonignore não deve relatar um erro ao passar a pessoa para o front end, porque o tipo de nome não pode ser analisado automaticamente no formato JSON. Observe que, por conveniência, escrevi o método de geração de valor do DN no construtor Public Pessoa (String CN) {} e também escrevi o método no setcn. Obviamente, há um problema de duplicação de código, basta ignorá -la.
5.
No pacote de serviço, crie uma nova classe ODMPERSONREPO
pacote com.example.demo.service; import com.example.demo.entry.person; importar org.springframework.beanS.actory.annotation.autowired; importar org.springframework.ldap.core.ldapMplate; importação org.springframework.steroTypey.SerTypeRy.SerTyPey; org.springframework.ldap.query.ldapQuerybuilder.Query;/** * @author: geng_pool * @description: * @date: criado em 2017/12/27 10:37 * @modified By: */ @ServicePublic Class OdmPersonEMPlate; Pessoa pública Criar (pessoa de pessoa) {ldaptemplate.create (pessoa); pessoa de volta; } pessoa pública findbycn (string cn) {return ldaptemplate.findone (query (). where ("cn"). is (cn), pessoa.class); } public pessoa modifyPerson (pessoa da pessoa) {ldaptemplate.Update (pessoa); pessoa de volta; } public void Deleteperson (pessoa da pessoa) {ldaptemplate.Delete (pessoa); }}Como você pode ver, as operações básicas de adição, exclusão, modificação e pesquisa foram implementadas para nós. Só precisamos chamar o método no LDAPTemplate. Para operar as adições, deleções, modificações e pesquisas do LDAP mais livremente, você pode consultar os documentos oficiais traduzidos.
6. Escreva a camada do controlador
No pacote do controlador, crie uma nova classe TestController para testar a operação do LDAP.
pacote com.example.demo.Controller; importar com.example.demo.entry.person; importar com.example.demo.service.odmpersonRepo; importação org.springframework.beans.factory.annotation.autowired; importação org.springframework.ldap.ldap.ent.Core.CeaRt.AnTation.autowired; importação; org.springframework.web.bind.annotation. *;/** * @author: geng_pool * @description: * @date: criado em 2017/12/27 10:50 * @Modificado por: */ @restcontrollerpublic Class TestController {@aUTOWIRDPERPERSERSERSERSERSERSERSERSERSERSERSERSERSER @RequestMapping (value = "/findOne", método = requestMethod.post) Pessoa pública findbycn (@RequestParam (name = "cn", requerir = true) string cn) {return odmpersonRepo.findbycn (cn); } @PostMapping (value = "/create") Pessoa pública Crie (@RequestParam (name = "cn") string cn,@requestParam (name = "sn") string sn,@requestParam (name = "userpassword") string userpassworld) {pessoa pessoa = nova pessoa (); pessoa.Setcn (CN); pessoa.Setsn (SN); pessoa.setUserPassword (UserPassworld); retornar odmpersonrepo.create (pessoa); } @PostMapping (value = "/update") Atualização da pessoa pública (@RequestParam (name = "cn") string cn,@requestParam (name = "sn") string sn,@requestParam (name = "userpassword") string userpassworld) {pessoa pessoa = nova pessoa (); pessoa.Setcn (CN); pessoa.Setsn (SN); pessoa.setUserPassword (UserPassworld); return odmpersonrepo.modifyPerson (pessoa); } @PostMapping (value = "/delete") public void delete (@RequestParam (name = "cn") string cn) {pessoa pessoa = new Person (); pessoa.Setcn (CN); ODMPERSONREPO.DEETEPERSON (Pessoa); }}Neste ponto, uma demonstração básica foi concluída. Vamos testá -lo abaixo
teste
Para que todos sigam as etapas, não usarei o Postman para testar, mas testará a interface no navegador. , Assim,
Inicie a bota da primavera. Se não houver erro, abra o navegador para localhost:8080/ , pressione F12 e coloque o modo de desenvolvedor. Encontre o console do console para nos facilitar para enviar declarações de teste.
Primeiro, apresente jQuery.js. Abra JQuery.js, selecione All - Copiar - Cole no console - Enter, conforme mostrado na figura abaixo:
Figura 11
Mostrado como verdadeiro, o que significa que o carregamento é bem -sucedido. Podemos usar o Ajax do JQuery para testá -lo.
Dados adicionados
Figura 12
Conforme exigido pelo testcontrolador da camada do controlador, usamos o método de postagem no endereço/criação para passar os dados CN SN UserPassword sobre
Figura 13
No servidor LDAP, os dados adicionados também são exibidos
Figura 14
Encontre dados
Figura 15
Os dados também podem ser encontrados corretamente com base no CN.
Modificar dados
Figura 16
Vamos verificar se o LDAP é modificado
Figura 17
Você pode ver que os dados podem ser modificados normalmente
Excluir dados
Figura 18
Verifique se deve excluir no LDAP
Figura 19
Como você pode ver, os dados foram excluídos corretamente.
Outras instruções
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.