java 代码
一共两个java类,加一个配置文件
LDAP.java---------------连接LDAP服务器,判断用户名密码正确与否
UMParas.java----------jDom解析xml配置文件
ldapconfig.xml---------配置文件,里面有服务器的参数信息
LDAP.java 代码
- package ldap2;
-
- import java.util.Hashtable;
- import javax.naming.AuthenticationException;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
- import javax.naming.directory.DirContext;
-
- public class LDAP {
-
- private Hashtable env = null;
-
- private DirContext ctx = null;
-
- private boolean islogin = false;
-
- StringBuffer url;
-
- String host;
-
- String port;
-
- String admin;
-
- String password;
-
- String baseDN;
-
- public LDAP(String id, String pwd) {
- try {
- host = UMParas.getPara("hostname");
- port = UMParas.getPara("port");
- baseDN = UMParas.getPara("basedn");
- admin = UMParas.getPara("admin");
- password = UMParas.getPara("pwd");
- url = new StringBuffer("LDAP://");
- url.append(host).append(":").append(port);
- url.append("/").append(baseDN);
-
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("");
- }
-
- env = new Hashtable();
-
- env.put("java.naming.factory.initial",
- "com.sun.jndi.ldap.LdapCtxFactory");
- env.put("java.naming.provider.url", url.toString());
- env.put(Context.SECURITY_AUTHENTICATION, "simple");
-
- env.put("java.naming.security.principal", admin);
- env.put("java.naming.security.credentials", password);
- System.out.println("-------------");
- }
-
- public boolean checkAd() {
- try {
- System.out.println("-----ddd--------");
- InitialContext iCnt = new InitialContext(env);
- System.out.println("-------eee------");
- islogin = true;
- } catch (AuthenticationException aue) {
-
- islogin = false;
-
- } catch (NamingException e) {
-
- e.printStackTrace();
- } catch (Exception eee) {
- eee.printStackTrace();
-
- } finally {
- try {
- ctx.close();
- } catch (Exception ie) {
-
- }
- }
- return islogin;
- }
-
- public boolean userLogin(String userName, String password) {
- Hashtable envi = new Hashtable();
- try {
- envi.put("java.naming.factory.initial",
- "com.sun.jndi.ldap.LdapCtxFactory");
- envi.put("java.naming.provider.url", url.toString());
- envi.put(Context.SECURITY_AUTHENTICATION, "simple");
- envi.put("java.naming.security.principal", userName);
- envi.put("java.naming.security.credentials", password);
- InitialContext iCnt = new InitialContext(envi);
- return true;
- } catch (Exception e) {
-
- return false;
- } finally {
- try {
- ctx.close();
- } catch (Exception ie) {
-
- }
- }
- }
- }
UMParas.java 代码
- package ldap2;
-
- import java.io.*;
- import java.util.*;
- import org.jdom.*;
- import org.jdom.input.SAXBuilder;
-
- public class UMParas {
-
- private static HashMap prop;
-
- private static long lastLoadTime;
-
- private static long interval = 0x186a0L;
-
-
- public UMParas() {
- }
-
-
- public static synchronized String getPara(String paras)
- throws IllegalArgumentException {
- if (paras == null || paras.trim().length() == 0)
- throw new IllegalArgumentException("Parameter's value invalid.");
- long currentTime = System.currentTimeMillis();
- if (prop == null || currentTime - lastLoadTime > interval)
- reloadDom();
- Object obj = prop.get(paras);
- if (obj != null)
- return (String) obj;
- else
- return null;
- }
-
-
- private static synchronized void reloadDom() {
- if (prop == null)
- prop = new HashMap();
- SAXBuilder builder = new SAXBuilder();
- Document read_doc = null;
- try {
- read_doc = builder.build(UMParas.class
- .getResource("ldapconfig.xml"));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (JDOMException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- Element rootElement = read_doc.getRootElement();
- List list = rootElement.getChildren("para");
- for (Iterator i = list.iterator(); i.hasNext();) {
- Element current = (Element) i.next();
- List item = current.getChildren("item");
- Attribute code;
- Attribute value;
- for (Iterator j = item.iterator(); j.hasNext(); prop.put(code
- .getValue(), value.getValue())) {
- Element init = (Element) j.next();
- code = init.getAttribute("code");
- value = init.getAttribute("value");
- }
-
- }
- System.out.println("load sucess");
- lastLoadTime = System.currentTimeMillis();
- }
-
- public static void main(String args[]) {
- System.out.println(getPara("hostname"));
- }
-
- }
ldapconfig.xml 代码
- <?xml version="1.0" encoding="GBK"?>
- <sys_para>
- <para>
- <item code="hostname" value="192.168.1.106" description="LDAP服务器IP"/>
- <item code="port" value="10389" description="服务器端口"/>
- <item code="admin" value="uid=admin,ou=system" description="管理员帐号"/>
- <item code="pwd" value="secret" description="密码"/>
- <item code="basedn" value="ou=system" description="组织名(基准DN)"/>
- </para>
- </sys_para>
分享到:
相关推荐
用JAVA实现LDAP的访问.txt 用JAVA实现LDAP的访问.txt
The Lightweight Directory Access Protocol , or LDAP ,is an application protocol for querying and modifying ...Google搜索 windows ldap服务器 ,终于找到了一个比较好的流行的:OpenLDAP(点击下载) 。
该资料介绍了LDAP目录服务的概念、工作方式、以及java语言的客户端访问ldap服务器,以及对对ldap服务器的查询,增加等操作,是一个不错的快速入门手册。
详细描述了LDAP的起源与发展,讲述了LDAP服务器的架设及如何用ldapjdk等访问LDAP服务器的方法 <br>注:英文原版图书,pdf格式,有目录,方便阅读及打印
java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
第二节访问LDAP 数据的API-JNDI...............................................................................33 1 J2SE 和JNDI 关系.........................................................................
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...