java或者python访问ldap

xharry 2008-03-07 08:05:54
请问哪位做过用java或者python访问ldap server的例子

最好有比较好的库可以调用,我搜索了,只有 http://www.openldap.org/jldap/ 但是只是源码,并且N年没有更新了。

有哪位朋友搞过这个吗?
...全文
40 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
FredWorks 2008-03-08
  • 打赏
  • 举报
回复
这里有个Java访问nescape的ldap服务器的简单的例子,楼主可以参考下。顺便说一句,nescape的ldap服务意,已经合并到sun的sun java sytstem directory server里面了。也就是说,前者已经不存在了,后者现在可用。你下载了sun java sytstem directory server并安装好以后,可以在安装目录里面找到对应的jar包,以及文档。

//指定Ldap服务器的主机,端口和要访问的根目录
Properties env = new Properties();
String MY_HOST = "localhost";
int MY_PORT = 389;
String MY_SEARCHBASE = "o=Airius.com";
env.put("jndi.service.host", MY_HOST);
env.put("jndi.service.port", MY_PORT);

try {
//首先建立上下文
DSContext ctx = new InitialDSContext(env);

//指定查询的条件
SearchConstraints constraints = new SearchConstraints();
constraints.setSearchScope(SearchConstraints.SUBTREE_SCOPE);

//找到拥有名字Jensen的Entity
String MY_FILTER = "sn=Jensen";
SearchEnumeration results = ctx.search(MY_SEARCHBASE, MY_FILTER, constraints);

//对每个找到的Entity,打印出它的名字以及所有的属性
while (results != null && results.hasMoreElements()) {
SearchResult si = results.next();
//打印名字
System.out.println("name: " + si.getName());
AttributeSet attrs = si.getAttributes();
if (attrs == null) {
System.out.println("No attributes");
} else {
//打印出所有的属性值
for (AttributeEnumeration ae = attrs.getAttributes(); ae.hasMoreElements();) {
Attribute attr = ae.next();
String attrId = attr.getAttributeId();
/* print each value */
for (Enumeration vals = attr.getValues(); vals.hasMoreElements();) {
System.out.println(attrId + ": " + vals.nextElement());
}
}
}
}
} catch (NamingException e) {
System.err.println("Search example failed");
e.printStackTrace();
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧