Spring-LDAP

下载地址 :http://www.springframework.org/ldap

用Spring LDAP最小需要:

* spring-ldap(spring-ldap包)
* spring-core(用于框架内部的丰富的工具类)
* spring-beans(方便操作java beans的接口和类)
* spring-context(增加通过一致API为应用对象获取资源的能力)
* spring-dao(使经常性的错误处理跟使用中的数据访问分开的异常处理机制)
* commons-logging(简单的日志处理,内部使用)

UserDaoLdapImpl

Java代码

package cn.com.ldap;

import java.util.List;

import javax.naming.NamingException;
import javax.naming.directory.Attributes;

import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.LdapTemplate;

import cn.com.ldap.Preson.Person;

/**
* @author Wangyaodi version 1.0 2008-6-12 | 下午02:55:25
*/
public class UserDaoLdapImpl {
private LdapTemplate ldapTemplate;

public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}

public List getAllPersonNames() {
return ldapTemplate.search("", "(objectclass=person)",
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn").get();
}
});
}

}

package cn.com.ldap;

import java.util.List;

import javax.naming.NamingException;
import javax.naming.directory.Attributes;

import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.LdapTemplate;

import cn.com.ldap.Preson.Person;

/**
* @author Wangyaodi version 1.0 2008-6-12 | 下午02:55:25
*/
public class UserDaoLdapImpl {
private LdapTemplate ldapTemplate;

public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}

public List getAllPersonNames() {
return ldapTemplate.search("", "(objectclass=person)",
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn").get();
}
});
}

}

preson:

Java代码

package cn.com.ldap;

public class Preson {
public class Person {

private String cn;

private String sn;

public String getCn() {
return cn;
}

public void setCn(String cn) {
this.cn = cn;
}

public String getSn() {
return sn;
}

public void setSn(String sn) {
this.sn = sn;
}

}

}

package cn.com.ldap;

public class Preson {
public class Person {

private String cn;

private String sn;

public String getCn() {
return cn;
}

public void setCn(String cn) {
this.cn = cn;
}

public String getSn() {
return sn;
}

public void setSn(String sn) {
this.sn = sn;
}

}

}

applicationContext.xml

Xml代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://192.168.16.XXX:389" />
<property name="base" value="OU=XXX,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX" />
<property name="userName" value="XXX@headquarter" />
<property name="password" value="XXX" />
</bean>

<bean id="ldapTemplate"
class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>

<bean id="userDao" class="cn.com.ldap.UserDaoLdapImpl">
<property name="ldapTemplate">
<ref bean="ldapTemplate" />
</property>
</bean>
</beans>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://192.168.16.XXX:389" />
<property name="base" value="OU=XXX,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX" />
<property name="userName" value="XXX@headquarter" />
<property name="password" value="XXX" />
</bean>

<bean id="ldapTemplate"
class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>

<bean id="userDao" class="cn.com.ldap.UserDaoLdapImpl">
<property name="ldapTemplate">
<ref bean="ldapTemplate" />
</property>
</bean>
</beans>

main

Java代码

public static void main(String[] args) {
ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoLdapImpl userDao = (UserDaoLdapImpl)cxt.getBean("userDao");
List users = userDao.getAllPersonNames();
System.out.println(users.size());
}

spring ladp相关推荐

  1. Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档) 9-16

    9. 数据 Spring Boot与多个数据技术集成,包括SQL和NoSQL. 9.1. SQL数据库 Spring Framework提供扩展支持用于与SQL数据工作,从使用JdbcTemplate ...

  2. Spring和依赖注入的价值

    javaeye上看到有帖子,置疑spring和依赖注入的价值,回复内容整理如下: 依赖注入对设计有利,而spring则促进了依赖注入的使用. 如果业务处理类,它所使用的倚赖,都是依靠在这个类内部实现或 ...

  3. 【Spring Security】基本功能介绍

    文章目录 1.spring security 简介 spring security 基本原理 2 入门项目 2.1 web工程配置 2.1 加入Spring Security 3. 参数详解 3.1. ...

  4. java任务调度定时器,从零开始学 Java - Spring 使用 Quartz 任务调度定时器

    生活的味道 睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈.你向生活微笑,生活也向你微笑. 请你不要询问我的未来,这有些可笑.你问我你是 ...

  5. spring security——基本介绍(一)

    一.spring security 简介 spring security 的核心功能主要包括: 认证 (你是谁) 授权 (你能干什么) 攻击防护 (防止伪造身份) 其核心就是一组过滤器链,项目启动后将 ...

  6. Spring Boot使用LDAP认证用户

    1.目录介绍: (1)目录是一种为浏览和搜索数据而创建的树状数据库,包含基于属性的描述性信息,并且支持高级的过滤功能. (2)目录不支持大多数事务性数据库所支持的高吞吐等复杂的更新操作:目录进行更新操 ...

  7. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  8. html+spring boot简单的ajax数据传输实现

    本篇讲解在前后端不分离情况下的html+spring boot的项目数据传输实现 首先,后台我写了三个接口 package com.demo.ajax.controller;import com.de ...

  9. Spring Boot整合Spring Data JPA操作数据

    一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...

最新文章

  1. 最牛逼的核心框架,没有之一!
  2. Java可视化开发开源框架
  3. 技术实践 | Android Flutter 多实例实践
  4. CommandLineRunner、ApplicationRunner 接口
  5. 记录一下Junit测试MongoDB,获取MongoTemplate
  6. java中的mod运算_Java中的运算符与控制语句
  7. Android Studio下载、安装、配置及连接真机开发第一个App ——入门选手快进
  8. 刷题笔记(2) 将数组中的数字组合成一个最小的数
  9. 洛谷——P1155 双栈排序
  10. 深度学习自学(三十九):基于对抗网络判别能力正则化的半监督生成方法
  11. linux进程共享内存通信,linux下进程通信方式--共享内存
  12. UVC系列2-探索Android UVC协议
  13. 大华linux密码,大华ME-S-S系列双SD卡车载DVR
  14. JS实现 b站直播弹幕自动补中括号、一键常用语脚本
  15. Android网络框架-Volley实践 使用Volley打造自定义ListView
  16. edge microsoff 连不上网_win10电脑连不上网的三种解决方法
  17. 游戏服务器会遭到什么攻击,被攻击了怎么防御
  18. 支持向量机 实战电信运营商 -客户流失预警
  19. ubuntu卷组安装
  20. ChatGPT能取代多少程序员?

热门文章

  1. λ/4阻抗变换器特征分析
  2. pt-archiver(数据导入导出工具)
  3. [转贴]一个真实的故事 使我这个曾经邪恶的心为之颤栗
  4. Qt dockwidget 标题栏去掉关闭按钮,自定义双击操作
  5. JavaScript学习笔记(五)---cookie、Proxy、服务器、PHP语言、http协议、同步异步、事件轮循机制、ajax编写、接口
  6. caioj 1069 动态规划入门(二维一边推2:顺序对齐)(最长公共子序列拓展总结)
  7. 【MicroPython】microbit micropython常用函数(API)
  8. 神经网络方法研究及应用,神经网络算法简单例子
  9. 嵌入式热敏打印机模块-优库E58T-1玩起来
  10. 免费的数据准备工具:talend