JAVA LDAP
来源:互联网 发布:厨房布局知乎 编辑:程序博客网 时间:2024/05/06 13:24
JAVA LDAP的文章很多,引用外部包的范例也不少,但是使用JAVA自带的例子能用的还不是很多,在此献上能够使用的代码。
public List getLdapInfo() {String serverName = "XXXX";//服务器名或IP地址String domain = "@XXXXX";//AD域名String port = "389";//AD端口,默认389String userAccount = "XXXX";//域内账号即可String userPwd = "XXXXX";//域内账号密码Properties env = new Properties();String user = userAccount.indexOf(domain) > 0 ? userAccount: userAccount + domain;String ldapURL = "LDAP://" + serverName + ":" + port;env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");env.put(Context.SECURITY_AUTHENTICATION, "simple");env.put(Context.SECURITY_PRINCIPAL, user);env.put(Context.SECURITY_CREDENTIALS, userPwd);env.put(Context.PROVIDER_URL, ldapURL);try {LdapContext ctx = new InitialLdapContext(env, null);SearchControls searchCtls = new SearchControls();searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);String searchFilter = "(&(&(&(objectCategory=user)(objectClass=user))))";String searchBase = "OU=x,dc=xx,dc=xxx";//此处查询条件可在AD服务器运行adsiedit.msc得到,或者按照OU节点填写String returnedAtts[] = { "description", "department","sAMAccountName", "displayName", "company", "mail" };searchCtls.setReturningAttributes(returnedAtts);NamingEnumeration answer = ctx.search(searchBase, searchFilter,searchCtls);while (answer.hasMoreElements()) {LdapUser ldapUsers = new LdapUser();SearchResult sr = (SearchResult) answer.next();Attributes attrs = sr.getAttributes();Attribute departAttr = attrs.get("department");Attribute descAttr = attrs.get("description");Attribute accountAttr = attrs.get("sAMAccountName");Attribute disNameAttr = attrs.get("displayName");Attribute compAttr = attrs.get("company");Attribute mailAttr = attrs.get("mail");if (descAttr != null) {ldapUsers.setCnname(String.valueOf(descAttr.get(0)));// System.out.println("Description: " + descAttr.get(0));}if (departAttr != null) {ldapUsers.setDepartinfo(String.valueOf(departAttr.get(0)));// System.out.println("Department: " + departAttr.get(0));}if (accountAttr != null) {ldapUsers.setLoginname(String.valueOf(accountAttr.get(0)));// System.out.println("Account: " + accountAttr.get(0));}if (disNameAttr != null) {ldapUsers.setEnname(String.valueOf(disNameAttr.get(0)));// System.out.println("Display: " + disNameAttr.get(0));}if (compAttr != null) {ldapUsers.setCompanyinfo(String.valueOf(compAttr.get(0)));// System.out.println("Company: " + compAttr.get(0));}if (mailAttr != null) {ldapUsers.setMailaddress(String.valueOf(mailAttr.get(0)));// System.out.println("Mail: " + mailAttr.get(0));}LdapInfo.add(ldapUsers);}ctx.close();} catch (NamingException e) {e.printStackTrace();System.err.println("Problem searching directory: " + e);}return LdapInfo;}package com.ldap;public class LdapUser {public String getLoginname() {return loginname;}public void setLoginname(String loginname) {this.loginname = loginname;}public String getCnname() {return cnname;}public void setCnname(String cnname) {this.cnname = cnname;}public String getEnname() {return enname;}public void setEnname(String enname) {this.enname = enname;}public String getDepartinfo() {return departinfo;}public void setDepartinfo(String departinfo) {this.departinfo = departinfo;}public String getCompanyinfo() {return companyinfo;}public void setCompanyinfo(String companyinfo) {this.companyinfo = companyinfo;}public String getMailaddress() {return mailaddress;}public void setMailaddress(String mailaddress) {this.mailaddress = mailaddress;}private String loginname;private String cnname;private String enname;private String departinfo;private String companyinfo;private String mailaddress;}
- java+LDAP
- JAVA LDAP
- java ldap
- 【Java】java连接ldap
- LDAP programming with Java
- JAVA访问ldap
- Java访问LDAP
- LDAP的java操作方法
- Java LDAP用户密码验证
- Java LDAP操作
- java LDAP userPassword
- java - LDAP快速入门
- Java操作Ldap
- Java调用Domino LDAP
- JAVA操作Ldap示例
- Java Ldap验证
- java连接到LDAP
- java连接Ldap
- 集合类List Set 成员之间的区别
- 关于as 3.0继承的机制
- 解决RedHat中ifconfig命令不能使用的问题
- 查看IE版本
- Jquery读取后台json数据
- JAVA LDAP
- Linux /etc/profile文件详解
- struct epoll_event
- redhat AS4下的openoffice 启动后无响应的解决办法
- 人人都是产品经理读后感(二)-------思考与总结
- android mediaplayer
- uboot启动参数设置分类及方法
- CvSepFilter 用于opencv sobel算子实现
- 多个数据库实例登录问题