Ldap Java同步用户
来源:互联网 发布:端口映射软件手机版 编辑:程序博客网 时间:2024/05/17 06:27
Java操作LDAP有几种方法,这里主要介绍的是JNDI包,就是它:
com.sun.jndi.ldap.LdapCtxFactory
LDAP默认情况下使用的是BDB数据库,所以呢,操作LDAP就和操作数据库一样,要分几步走:
1、先导入所需的包,如下:
import java.util.ArrayList;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.DirContext;
import javax.naming.directory.Attributes;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchResult;
import javax.naming.NamingException;
import com.sun.NET.ssl.internal.ssl.Debug;
2、连接LDAP,得到连接对象,如下:
DirContext ctx = null; //这个就是LDAP的连接对象
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldap://192.168.0.1:389);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "");
env.put(Context.SECURITY_CREDENTIALS, "123456");
try
{
}
catch(NamingException e)
{
}
这里建议大家把以上的代码写成一个函数,返回DirContext 这个对象,方便使用。
3、连接LDAP后同步某一个组下面的用户,如下:
Map<String,String> map = new HashMap<String, String>();
try {
if(ctx != null){
NamingEnumeration<NameClassPair> list = ctx.list("ou=Group,dc=cs,dc=hunan,dc=com“);
while(list.hasMore()){
NameClassPair ncp = list.next();
String cn = ncp.getName();
if(StringUtil.isNotBlank(cn) && cn.indexOf("=") != -1){
int index = cn.indexOf("=");
cn = cn.substring(index + 1,cn.length());
map.put(cn, ncp.getNameInNamespace());
}
}
}
} catch (NamingException e) {
e.printStackTrace();
return;
}
try {
if(ctx != null)
ctx.close();
} catch (NamingException e) {
e.printStackTrace();
}
//遍历用户
Iterator<Entry<String,String>> it = map.entrySet().iterator();
while(it.hasNext()){
Entry<String,String> entry = it.next();
System.out.println(entry.getKey())
System.out.println(entry.getValue())
- Ldap Java同步用户
- Ranger用户同步于LDAP
- liferay通过ldap同步用户([用户组])设置(二)
- liferay通过ldap同步用户([用户组])设置(一)
- java windows AD 实现LDAP用户管理
- JAVA中使用LDAP进行用户认证
- Java使用LdAP获取AD域用户
- JAVA中使用LDAP进行用户认证
- JAVA中使用LDAP进行用户认证
- LDAP用户验证(Spring-LDAP)
- LDAP用户验证(Spring-LDAP)
- LDAP用户验证(Spring-LDAP)
- java使用虚拟属性操作LDAP(opends)用户,角色,组
- Java程序通过LDAP对用户进行登陆验证
- java+LDAP
- JAVA LDAP
- java ldap
- IceWarp 集成 LDAP 服务 同步管理用户,实现客户端地址簿查找
- quartz.properties
- High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
- Python 实现感知器模型、两层神经网络
- caffe卷积输入通道如何到输出通道
- iPhone各个版本的像素点
- Ldap Java同步用户
- Java之POJO和javabean的异同
- 视觉研究的前世今生(上)王天珍(武汉理工大学)
- 如何用好FL Studio中的画笔工具
- DataGrid 初识
- 国内较快的maven镜像
- yum 时候出现Another app is currently holding the yum lock解决方法
- RabbitMQ案例之Publish/Subscribe
- Codeforces 101D