Java操作LDAP的基本方法
2014-11-17 19:07
696 查看
package com.ssc.qe.dac.util; import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attributes; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; import com.ssc.qe.dac.model.User; public class LdapInfo { //str表示查询的参数 public static User getUser(String username,String password,String str){ User user=new User(); //设置LDAP的参数 Hashtable<String, String> ldapEnv = new Hashtable<String, String>(); ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");//使用的环境 ldapEnv.put(Context.PROVIDER_URL, "ldap://corp.statestr.com:389");//LDAP的根路径 ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple");//验证方式 ldapEnv.put(Context.SECURITY_PRINCIPAL, username+"@CORP");//用户名 ldapEnv.put(Context.SECURITY_CREDENTIALS,password);//密码 //获取连接 DirContext dirContext=null; try{ dirContext = new InitialDirContext(ldapEnv); SearchControls searchControls = new SearchControls(); //返回元素的结果集。 String filterProperties[] = { "cn", "mail", "samAccountName" }; searchControls.setReturningAttributes(filterProperties); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); //过滤数据的条件,根据具体情况而定 String searchFilter = "(|(sAMAccountName="+str+")(cn="+str+")(mail="+str+"))"; String searchBase = "DC=corp,DC=statestr,DC=com"; //执行查找 NamingEnumeration<SearchResult> answer = dirContext.search(searchBase,searchFilter,searchControls); int totalResults = 0; while (answer.hasMoreElements()) { SearchResult sr = (SearchResult) answer.next(); totalResults++; Attributes attrs = sr.getAttributes(); //获得指定的结果 String email=attrs.get("mail").get().toString(); String LanId=attrs.get("samAccountName").get().toString(); String userName=attrs.get("cn").get().toString(); user.setLanId(LanId); user.setUserName(userName); } }catch(Exception e){ e.printStackTrace(); }finally{ try { dirContext.close(); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return user; } // public static void main(String[] args) { // System.out.println(LdapInfo.getUser("用户名","密码","条件")); // } }
相关文章推荐
- java调用svn的方法(基本操作,并不全)
- jldap实现Java对LDAP的基本操作
- Java 程序优化:字符串操作、基本运算方法等优化策略(一)
- Java代码为例讲解堆的性质和基本操作以及排序方法
- CompressUtils相关代码,java中文件压缩或解压已经文件的基本操作等方法
- JAVA_基本LDAP操作
- Java字符串操作、基本运算方法等优化策略
- Java常用的一些多媒体文件基本操作方法简介
- Java 程序优化:字符串操作、基本运算方法等优化策略(一)
- java操作redis基本功能_Main方法(六)
- LDAP学习笔记<四>jldap实现Java对LDAP的基本操作
- Java 程序优化:字符串操作、基本运算方法等优化策略
- Java反射之——方法反射的基本操作
- CompressUtils相关代码,java中文件压缩或解压已经文件的基本操作等方法
- java 四种xml操作方式的基本使用方法
- java中JDBC基本操作的一个工具类,一些基本方法
- Java 程序优化:字符串操作、基本运算方法等优化策略
- Java 程序优化:字符串操作、基本运算方法等优化策略
- JAVA_基本LDAP操作实例
- Java 程序优化:字符串操作、基本运算方法等优化策略