首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> J2EE >> J2ee核心 >> 正文

封装JNDI操作LDAP服务器的工具类(5)


  目标:使用者只需要会使用List,Map 数据结构,将对LDAP的操作进行封装
  
  类:主要有三个类
  
  1 Env类 包含LDAP的连接信息
  
  2 LdapConnectionFactory类 ldap连接工厂,提供初始化及获取ldap连接的方法
  
  3 LdapOperUtils ldap的处理工具类,提供了各种操作ldap的方法。
  
  如何使用封装JNDI操作LDAP服务器的工具类
  
  下面是一个例子
  
  测试类的功能,向windows Active Directory 增加一个域用户 lwf2_count,并激活该帐户
  
  public class TestOper {
  
  public static void main(String args[]) throws BaseException,
  NamingException, UnsupportedEncodingException {
  // 连接Active Directory 信息
  Env env = new Env();
  env.factory = "com.sun.jndi.ldap.LdapCtxFactory";
  env.url = "ldap://10.110.179.175:389";
  env.adminUID = "cn=administrator,cn=users,DC=securitytest,DC=boco";
  env.adminPWD = "Ba88736612";
  DirContext dirContext = LdapConnectionFactory.getDirContext(env);
  
  // 增加一个Active Directory 用户需要的属性
  List list1 = new ArrayList();
  Map attMap = new HashMap();
  
  list1.add("top");
  list1.add("person");
  list1.add("organizationalPerson");
  list1.add("user");
  attMap.put("objectclass", list1);
  
  attMap.put("cn","lwf2_count"); // Active Directory 的name
  ttMap.put("sn","liao");   // Active Directory 的 姓
  attMap.put("givenName","wufeng");    // Active Directory 的 名
  attMap.put("displayName","liaowufeng"); // Active Directory 的 显示名
  
  attMap.put("userPrincipalName","lwf2_name@securitytest.boco"); // Active Directory 的 用户登录名
  attMap.put("samAccountName","lwf2_name"); // Active Directory 的 用户登录名 (widnows 2000 以前版本)
  
  String newPassword = "bA123456";
  attMap.put("userPassword",newPassword); // 用户密码
  
  int UF_ACCOUNTDISABLE = 0x0002;
  int UF_PASSWD_NOTREQD = 0x0020;
  int UF_PASSWD_CANT_CHANGE = 0x0040;
  int UF_NORMAL_ACCOUNT = 0x0200;
  int UF_DONT_EXPIRE_PASSWD = 0x10000; // 激活帐号
  int UF_PASSWORD_EXPIRED = 0x800000;
  // 激活帐号
  attMap.put("userAccountControl", Integer.toString(UF_DONT_EXPIRE_PASSWD));
  
  LdapOperUtils.addContext(dirContext,"CN=lwf2_count,CN=Users,DC=securitytest,DC=boco", attMap);
  // 关闭dirContext
  LdapConnectionFactory.closeDirContext(dirContext);
  }
  }
  
  好了,就写到这了,LdapOperUtils这个类提供了LDAP操作大多数要使用的方法。所有方法在实际工作中都使用过。
  
  对于各位有什么更好的想法,或需要的操作,没有提供到,请与我联系,共同讨论。
【责编:admin】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Oracle外键及外键约束修改行为
 ·开源软件测试工具学习专题
 ·JSP Web开发 入门基础到高手进阶教程
 ·JavaFX—是Java桌面的新希望么?
 ·安全至上 .NET开发安全策略
 ·测试用例设计之道-测试用例学习专题
 ·面向Java开发人员的Scala指南
 ·Java设计模式之实例详解
 ·Oracle数据库11g 面向DBA和开发人员的重要新特性
 ·桌面应用软件编程 J2SE技术详解
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航