-------------------------------------------------------------备忘-------------------------------------------------------------------------
/**
* LDAP 事件监听器测试
*/
class LDAPListenerTest {
public static void main(String[] args) {
// Set up environment for creating initial context
Hashtable<String, Object> env = new Hashtable<String, Object>(11);
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
env.put(Context.SECURITY_PRINCIPAL, "cn=root");
env.put(Context.SECURITY_CREDENTIALS, "root");
try {
// Get event context for registering listener
// String baseDN = "ou=07,ou=csg,o=serc,c=cn";
String baseDN = "dc=example,dc=com";
EventContext ctx = (EventContext) (new InitialContext(env).lookup(baseDN));
// Create listener
NamingListener unsolListener = new UnsolicitedNotificationListener() {
public void notificationReceived(UnsolicitedNotificationEvent evt) {
System.out.println("received: " + evt + ",notification:" + evt.getNotification());
}
public void namingExceptionThrown(NamingExceptionEvent evt) {
System.out.println(">>> UnsolListener got an exception");
evt.getException().printStackTrace();
}
};
NamingListener namespaceListener = new NamespaceChangeListener() {
public void objectAdded(NamingEvent evt) {
System.out.println("objectAdded: " + evt.getOldBinding() + "\n=> " + evt.getNewBinding());
System.out.println("\tchangeInfo: " + evt.getChangeInfo());
}
public void objectRemoved(NamingEvent evt) {
System.out.println("objectRemoved: " + evt.getOldBinding() + "\n=> " + evt.getNewBinding());
System.out.println("\tchangeInfo: " + evt.getChangeInfo());
}
public void objectRenamed(NamingEvent evt) {
System.out.println("objectRenamed: " + evt.getOldBinding() + "\n=> " + evt.getNewBinding());
System.out.println("\tchangeInfo: " + evt.getChangeInfo());
}
public void namingExceptionThrown(NamingExceptionEvent evt) {
System.err.println(">>>NamespaceChangeListener Exception");
evt.getException().printStackTrace();
}
};
NamingListener objectListener = new ObjectChangeListener() {
public void objectChanged(NamingEvent evt) {
System.out.println("objectChanged: " + evt.getOldBinding() + "\n\t=> " + evt.getNewBinding());
System.out.println("\tchangeInfo: " + evt.getChangeInfo());
}
public void namingExceptionThrown(NamingExceptionEvent evt) {
System.err.println(">>>ObjectChangeListener Exception");
evt.getException().printStackTrace();
}
};
// Register listener with context (all targets equivalent)
ctx.addNamingListener("", EventContext.SUBTREE_SCOPE, unsolListener);
ctx.addNamingListener("", EventContext.SUBTREE_SCOPE, namespaceListener);
ctx.addNamingListener("", EventContext.SUBTREE_SCOPE, objectListener);
System.out.println("Listener to LDAP server ...");
// Wait 1 minutes for listener to receive events
try {
Thread.sleep(60000 * 60);
} catch (InterruptedException e) {
System.out.println("sleep interrupted");
}
// Not strictly necessary if we're going to close context anyhow
ctx.removeNamingListener(unsolListener);
// Close context when we're done
ctx.close();
System.out.println("Remove Listener ...");
} catch (NamingException e) {
e.printStackTrace();
}
}
}
-------------------------------------------------------程序来源网络 但是都经过本人测试---------------------------------------------------------------------
分享到:
相关推荐
### OpenDS-2.0官方Administration Guide 知识点概览 #### 一、OpenDS简介 OpenDS是由Sun Microsystems开发的一款开源LDAP(轻量级目录访问协议)服务器。它被设计为高度可扩展且易于管理,适用于企业级别的应用。...
OpenDS-1.2.0是一款开放源代码的目录服务器,专为管理和存储大量结构化数据而设计。这款工具在IT行业中主要用于身份管理和访问控制,是基于Java开发的,因此可以跨平台运行,包括UNIX系统和其他支持Java的环境,如...
OpenDS,全称为Open Directory Services,是一个开源的身份和目录服务解决方案。它由Sun Microsystems开发,旨在提供企业级的目录服务,支持多种操作系统和网络环境。OpenDS的主要目标是为用户提供安全、可扩展、高...
- **Load Balancing**:通过负载均衡器分发请求到不同的服务器实例,提升性能和响应速度。 - **Scalability**:支持水平扩展,可根据业务需求增加服务器节点。 #### 四、技术特性 ##### 4.1 安全性 - **SSL/TLS ...
同时,需要将“Lib”目录下的.lib文件添加到链接器的输入项,确保在链接阶段可以找到库函数的实现。在64位环境中,这通常是通过设置项目属性来完成的,确保库和项目都使用相同的架构(这里是x64)。 总结来说,这个...
- 安装过程中需要设定 **OpenDS** 的监听地址和端口。 2. **配置LDAP服务** - 需要注意的是,在配置 LDAP 时,文档中的“配置 ldap 注意红色框框的地方修改配置”是指在配置过程中应关注高亮或标记的字段,这些...
OpenDS是一个开源,基于LDAP与DSML标准的directoryservice。directoryservice不仅包括DirectoryServer,还有其它与directory相关的基本service如:directoryproxy、virtualdirectory、namespacedistribution和数据...
### OpenDS-1.2.0的Windows下的安装配置指南 #### 一、OpenDS简介与背景 OpenDS是一款开源的轻量级目录访问协议(LDAP)服务器,由Sun Microsystems发起并支持,自2008年6月12日发布了首个版本OpenDS-1.0.0以来,便...
物联网-openDS 这是 open-source分支,它是。此存储库中的更改: 包含资产(无需安装) 为添加了新任务安装只是克隆这个仓库在IDE中打开项目编辑Project properties > Run > Working directory :设置为OpenDS的根...
开放式DS 开放数字样本 (openDS) 规范的主页。 openDS 仍处于开发的早期阶段,您可以在此存储库中跟踪其进展。入门为了帮助您入门,我们提供了。 您还可以在那里找到有关,以及其他几个常见问题文档。 openDS 数据...
OpenDS4All是一个旨在加速在学术机构中创建数据科学课程的项目。 尽管有很多在线资料可用于数据科学(包括在线课程),但我们认识到,让许多学生学习(以及让许多机构提供)内容的最佳方式是通过讲座,朗诵或课堂...
matlab如何敲代码OpenDS的自由 这是的open-source社区分支。 此存储库中的更改: 新的Cognitive load实验 在我们的GitHub存储库上促进了社区与开发人员的协作 预设的IDE(NetBeans)项目,安装更加方便 对上游代码的...
活动目录示例,如ApacheDS,OpenDS,OpenDJ和slapd,使用诸如jxplorer之类的工具 问-LDAP的同义词是什么? 一种 - Q-给它一些暗示 一种 - 问-什么是CN,DS,OpenDj,Slapd? 一种 - 问-什么是RDN,DN,OU,CN,DC...
3. **集成James与OpenDS**:Apache James可以通过配置文件(如`james-server.conf`)连接到OpenDS LDAP服务器。你需要提供OpenDS服务器的URL、端口、管理员用户名和密码,以及可能需要的SSL/TLS设置。配置完成后,...
Capstone2015-紫色海洋使用OpenDS进行驾驶模拟的平视显示模块我们制作了eu.opends.bluetooth,eu.opends.hud,eu.opends.hud.BSA,eu.opends.hud.call,eu.opends.hud.music,eu。 opends.hud.sms,eu.opends.hud....
OpenDS 是一个基于 C++17 的数据结构模板库,专为教育目的设计。它提供了多种常用的数据结构实现,如 AVL 树、二叉搜索树、八叉树和特里树,以帮助学习者和开发者更好地理解和应用这些基础概念。 **AVL 树** AVL 树...
提供一个过滤器和搜索范围,返回结果集。 ```java SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.SUBTREE_SCOPE); // 搜索整个子树 NamingEnumeration...