1、创建新项目TestOpenLdap;

2、新建测试类TestOpenLdap.java;

3、编写测试程序。代码见附件。package com.suresec.openldap;

import java.util.Hashtable;

import javax.naming.Context;

import javax.naming.NamingException;

import javax.naming.directory.BasicAttribute;

import javax.naming.directory.BasicAttributes;

import javax.naming.directory.DirContext;

import javax.naming.directory.InitialDirContext;

public class TestOpenLDAP {

final private static String account = "Manager";

final private static String password = "python";

final private static String root = "dc=python,dc=com";

public TestOpenLDAP()

{

//init();

}

public DirContext getCtx()

{

DirContext ctx = null;

Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

env.put(Context.PROVIDER_URL, "ldap://192.168.1.45:389/");

env.put(Context.SECURITY_AUTHENTICATION, "simple");

env.put(Context.SECURITY_PRINCIPAL, "cn="+account+","+root);

env.put(Context.SECURITY_CREDENTIALS, password);

try {

ctx = new InitialDirContext(env);

System.out.println("认证成功");

} catch (Exception e) {

// TODO Auto-generated catch block

System.out.println("认证失败:"+e.toString());

return null;

}

return ctx;

}

public void add(DirContext ctx)

{

try {

String newUserName = "hi";

BasicAttributes attrs = new BasicAttributes();

BasicAttribute objclassSet = new BasicAttribute("objectClass");

objclassSet.add("top");

objclassSet.add("organizationalUnit");

attrs.put(objclassSet);

attrs.put("ou",newUserName);

ctx.createSubcontext("ou=" + newUserName+","+root, attrs);

} catch (NamingException e) {

// TODO Auto-generated catch block

System.out.println("Exception in add():"+e);

}

}

public void delete(DirContext ctx)

{

try {

ctx.destroySubcontext("ou=hi,dc=python,dc=com");

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void close(DirContext ctx)

{

try {

if(ctx != null)

{

ctx.close();

}

} catch (NamingException e) {

// TODO Auto-generated catch block

System.out.println("NamingException in close():"+e);

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

TestOpenLDAP testOpenLdap = new TestOpenLDAP();

DirContext ctx = testOpenLdap.getCtx();

testOpenLdap.add(ctx);

testOpenLdap.close(ctx);

}

}

4、运行测试程序,结果如下所示:

java openldap_java操作OpenLdap示例相关推荐

  1. Java API 操作 OpenLDAP

    OpenLDAP Windows 安装 @RunWith(SpringRunner.class) @SpringBootTest public class OpenLDAPJavaAPITest {p ...

  2. java ldap操作实例_Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法...

    java ldap操作实例 LDAP身份验证是世界上最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft为Windows提供的LDAP实现)是另一种广泛使用的 ...

  3. Java文件操作(超详细+代码示例)

    Java文件操作 一.Java.io包 1.1 File类 1.2 Stream流(字节流) 1.2.1 使用FileInputStream类 1.2.2 使用FileOutputStream类 1. ...

  4. RocksDB Java API 操作示例

    1. RocksDB特点 rocksDB 是一个可嵌入的,持久性的 key-value存储.基于Google的LevelDB,但提高了扩展性可以运行在多核处理器上,可以有效使用快速存储,支持IO绑定. ...

  5. java字符串操作_Java的字符串操作

    Java的字符串操作 小型送分题:Java有字符串(String),StringBuffer(字符串缓存),StringBuilder(字符串建造者?)各种实现,究其原因还是历史上的各种坑. 一.不同 ...

  6. Java 9 特性与示例

    Java 9 特性与示例 Java 9是一个主要版本,它为开发人员带来了许多功能.在本文中,我们将详细介绍Java 9的功能. Java 10已发布,有关Java 10发行版的完整概述,请参阅Java ...

  7. Spring Boot + JPA +MySQL 数据操作及示例环境搭建(自动建表)

    JPA 是Java官方提供的数据持久的统一API , 是一个接口标准,并没有具体实现. JPA的实现常见的有: Hibernate TopLink (Eclipse Link) Spring Boot ...

  8. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

    大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...

  9. Java删除操作注册表

    Java删除操作注册表 示例代码如下: Preferences userData = Preferences.userRoot();Scanner input = new Scanner(System ...

最新文章

  1. 面试官:GET和POST两种基本请求方法有什么区别
  2. 未能加载文件或程序集或它的某一个依赖项_手写一个miniwebpack
  3. SLAM: Orb_SLAM的使用小综述
  4. 2020牛客暑期多校训练营(第一场)
  5. couchbase_Couchbase:使用Twitter和Java创建大型数据集
  6. 【Elasticsearch】揭秘 Elasticsearch 分片分配
  7. 放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结
  8. Linux之间ssh免密码登录
  9. Photoshop插件-删除亮调通道蒙板-脚本开发-PS插件
  10. 记录linux deploy如何进行分区安装centos7
  11. word2vec模型原理及实现词向量训练案例
  12. Android 宽高比控件
  13. 图片服务器的架构演进
  14. 客户信息管理系统类毕业论文文献有哪些?
  15. 清除tomcat缓存HTML,清除Tomcat缓存
  16. 数模论文写作方法3|问题重述
  17. Easyui datagrid数据清空
  18. ITパスポート5天学习笔记④_Rx
  19. 阿里P7架构师到底有多难?
  20. 《C语言程序设计》笔记

热门文章

  1. 盘点11个面向文档的开源NoSQL数据库
  2. jquery ajax return值不能取得的解决方案
  3. 【端口号和服务漫谈】
  4. logback:用slf4j+logback实现多功能日志解决方案
  5. Android应用开发—TextView的动态创建
  6. python调用tcpdump抓包过滤
  7. centos yum 安装配置
  8. 纯Shading Language绘制飞机火焰效果
  9. atitit.人脸识别的应用场景and使用最佳实践 java .net php
  10. Length High