网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java入门知识.
.如何将JAVA生成可执行文件?.
.Java1.5中新的静态导入特性.
.java学习笔记.
.[新手入门]Java开发工具与开发环.
.读写指定的属性文件演示.
.让Java说话-用Java实现语音引擎.
.Lesson 1.02 Ant的安装和配置(图.
.使用JSF(Java Server Faces)开.
.Swing和SWT取舍之我见.
.非阻塞套接字(Nonblocking Socke.
.详解Java中的指针、引用及对象的.
.java性能优化-之三.
.setYear 方法.
.用javaZoom的uploadBean扩展requ.
.按要求进行决定是否有状态的EJB(.
.Swing破局:打造半透明窗口.
.有人看过2001 的书吗?.
.Visual C++打造Windows信使服务程.
.AspectJ 和模仿对象的测试灵活性.

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

发表日期:2008-1-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操作大多数要使用的方法。所有方法在实际工作中都使用过。
  
  对于各位有什么更好的想法,或需要的操作,没有提供到,请与我联系,共同讨论。
上一篇:封装JNDI操作LDAP服务器的工具类(4) 人气:658
下一篇:封装JNDI操作LDAP服务器的工具类(2) 人气:751
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐