`
xiaomogui
  • 浏览: 242780 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

openDS监听器

    博客分类:
  • ldap
阅读更多

-------------------------------------------------------------备忘-------------------------------------------------------------------------

/**  
 * 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-2.0官方Administration Guide 知识点概览 #### 一、OpenDS简介 OpenDS是由Sun Microsystems开发的一款开源LDAP(轻量级目录访问协议)服务器。它被设计为高度可扩展且易于管理,适用于企业级别的应用。...

    OpenDS-1.2.0.

    OpenDS-1.2.0是一款开放源代码的目录服务器,专为管理和存储大量结构化数据而设计。这款工具在IT行业中主要用于身份管理和访问控制,是基于Java开发的,因此可以跨平台运行,包括UNIX系统和其他支持Java的环境,如...

    OpenDS-2.3.0-build003.zip

    OpenDS,全称为Open Directory Services,是一个开源的身份和目录服务解决方案。它由Sun Microsystems开发,旨在提供企业级的目录服务,支持多种操作系统和网络环境。OpenDS的主要目标是为用户提供安全、可扩展、高...

    OpenDS-2.0官方架构参考手册

    - **Load Balancing**:通过负载均衡器分发请求到不同的服务器实例,提升性能和响应速度。 - **Scalability**:支持水平扩展,可根据业务需求增加服务器节点。 #### 四、技术特性 ##### 4.1 安全性 - **SSL/TLS ...

    opends60.lib VC++能用的x64版本

    同时,需要将“Lib”目录下的.lib文件添加到链接器的输入项,确保在链接阶段可以找到库函数的实现。在64位环境中,这通常是通过设置项目属性来完成的,确保库和项目都使用相同的架构(这里是x64)。 总结来说,这个...

    Cognos8.3与OpenDS-1.0.0集成认证.doc

    - 安装过程中需要设定 **OpenDS** 的监听地址和端口。 2. **配置LDAP服务** - 需要注意的是,在配置 LDAP 时,文档中的“配置 ldap 注意红色框框的地方修改配置”是指在配置过程中应关注高亮或标记的字段,这些...

    OpenDS-2.2.1

    OpenDS是一个开源,基于LDAP与DSML标准的directoryservice。directoryservice不仅包括DirectoryServer,还有其它与directory相关的基本service如:directoryproxy、virtualdirectory、namespacedistribution和数据...

    OpenDS-1.2.0的windows下的安装配置文档.doc

    ### OpenDS-1.2.0的Windows下的安装配置指南 #### 一、OpenDS简介与背景 OpenDS是一款开源的轻量级目录访问协议(LDAP)服务器,由Sun Microsystems发起并支持,自2008年6月12日发布了首个版本OpenDS-1.0.0以来,便...

    IoT-OpenDS:OpenDS原始开源叉的一个叉

    物联网-openDS 这是 open-source分支,它是。此存储库中的更改: 包含资产(无需安装) 为添加了新任务安装只是克隆这个仓库在IDE中打开项目编辑Project properties &gt; Run &gt; Working directory :设置为OpenDS的根...

    openDS:开放数字样本 (openDS) 规范之家

    开放式DS 开放数字样本 (openDS) 规范的主页。 openDS 仍处于开发的早期阶段,您可以在此存储库中跟踪其进展。入门为了帮助您入门,我们提供了。 您还可以在那里找到有关,以及其他几个常见问题文档。 openDS 数据...

    OpenDS4All:OpenDS4All项目,由LF AI&Data托管

    OpenDS4All是一个旨在加速在学术机构中创建数据科学课程的项目。 尽管有很多在线资料可用于数据科学(包括在线课程),但我们认识到,让许多学生学习(以及让许多机构提供)内容的最佳方式是通过讲座,朗诵或课堂...

    matlab如何敲代码-openDS-oss:OpenDS.de汽车驾驶模拟器的镜像

    matlab如何敲代码OpenDS的自由 这是的open-source社区分支。 此存储库中的更改: 新的Cognitive load实验 在我们的GitHub存储库上促进了社区与开发人员的协作 预设的IDE(NetBeans)项目,安装更加方便 对上游代码的...

    ldap:活动目录示例,如ApacheDS,OpenDS,OpenDJ和slapd,使用诸如jxplorer之类的工具

    活动目录示例,如ApacheDS,OpenDS,OpenDJ和slapd,使用诸如jxplorer之类的工具 问-LDAP的同义词是什么? 一种 - Q-给它一些暗示 一种 - 问-什么是CN,DS,OpenDj,Slapd? 一种 - 问-什么是RDN,DN,OU,CN,DC...

    Apache James 3.0支持LDAP参考文档

    3. **集成James与OpenDS**:Apache James可以通过配置文件(如`james-server.conf`)连接到OpenDS LDAP服务器。你需要提供OpenDS服务器的URL、端口、管理员用户名和密码,以及可能需要的SSL/TLS设置。配置完成后,...

    Capstone2015-PurpleOcean:平视显示模块,用于使用OpenDS进行驾驶模拟

    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中的数据结构模板库

    OpenDS 是一个基于 C++17 的数据结构模板库,专为教育目的设计。它提供了多种常用的数据结构实现,如 AVL 树、二叉搜索树、八叉树和特里树,以帮助学习者和开发者更好地理解和应用这些基础概念。 **AVL 树** AVL 树...

    java对Openldap进行操做

    提供一个过滤器和搜索范围,返回结果集。 ```java SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.SUBTREE_SCOPE); // 搜索整个子树 NamingEnumeration...

Global site tag (gtag.js) - Google Analytics