zoukankan      html  css  js  c++  java
  • apacheds的客户端

    Apache DS管理的JAVA实现

    LdapConnection connection = new LdapNetworkConnection("localhost", 10389);
    //检测连接状态
        @Test
        public void testSimpleBindRequest() throws LdapException {
            connection.bind("uid=admin,ou=system", "secret");
            connection.unBind();
            Assert.assertFalse(connection.isConnected());
            Assert.assertFalse(connection.isAuthenticated());
        }
        //简单的查询
        @Test
        public void testSimplesearch() throws LdapException, CursorException,IOException {
            connection.bind("uid=admin,ou=system", "secret");
            EntryCursor cursor = connection.search("ou=system", "(objectclass=*)",SearchScope.ONELEVEL);
            while (cursor.next()) {
                Entry entry = cursor.get();
                Assert.assertNotNull(entry);
                System.out.println(entry);
            }
            cursor.close();
            connection.close();
        }
        //带有约束条件的查询
        @Test
        public void testComplexSearches() throws LdapException, CursorException,IOException {
            connection.bind("uid=admin,ou=system", "secret");
            SearchRequest req = new SearchRequestImpl();
            req.setScope(SearchScope.SUBTREE);
            req.addAttributes("*");
            req.setTimeLimit(0);
            req.setBase(new Dn("ou=system"));
            req.setFilter("(ou=consumers)");
     
            SearchCursor searchCursor = connection.search(req);
            while (searchCursor.next()) {
                Response response = searchCursor.get();
                if (response instanceof SearchResultEntry) {
                    Entry resultEntry = ((SearchResultEntry) response).getEntry();
                    Assert.assertNotNull(resultEntry);
                    System.out.println(resultEntry);
                }
            }
            searchCursor.close();
            connection.close();
        }
     
        //添加条目
        @Test
        public void testAddLdif() throws LdapException, IOException {
            connection.bind("uid=admin,ou=system", "secret");
            connection.add(new DefaultEntry("cn=testadd,ou=system","ObjectClass:top", "ObjectClass:person", "cn:testadd_cn","sn:testadd_sn"));
            connection.close();
     
        }
     
        //以请求的方式添加条目
        @Test
        public void testAddWithControl() throws LdapException, IOException {
            connection.bind("uid=admin,ou=system", "secret");
            Entry entry = new DefaultEntry("cn=testadd2,ou=system","ObjectClass:top", "ObjectClass:person", "sn:testadd_sn");
            AddRequest addRequest = new AddRequestImpl();
            addRequest.setEntry(entry);
            addRequest.addControl(new ManageDsaITImpl());
            AddResponse response = connection.add(addRequest);
            Assert.assertNotNull(response);
            Assert.assertEquals(ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode());
            connection.close();
        }
     
        //删除条目
        @Test
        public void testDeleteLeafNode() throws LdapException, IOException {
            connection.bind("uid=admin,ou=system", "secret");
            connection.delete("cn=testadd,ou=system");
            connection.close();
        }
        //删除条目
        @Test
        public void testModify() throws LdapException, IOException {
            connection.bind("uid=admin,ou=system", "secret");
            Modification addedGivenName = new DefaultModification(ModificationOperation.ADD_ATTRIBUTE, "givenName");        connection.modify("uid=Doe,dc=acme,dc=com",addedGivenName);
            connection.close();
        }
  • 相关阅读:
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 K-近邻算法及应用
    实验一 感知器及其应用
    园区网核心、防火墙、边界出口冗余实验配置
    PNETLab模拟器部署及使用配置
    基于RPS开发模式的可视化设计解决方案
    Python学习手册《Learning Python》
    【转】Windows 64bit下Python环境配置与集成IDE PyCharm
    时间复杂度完美例子---数组最大子序列和
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7172254.html
Copyright © 2011-2022 走看看