ldapjava源代码 ldapjdk

java 连接 ldap 报错

应该是用户名写的不对,env.put(Context.SECURITY_PRINCIPAL,"cn=" + username);

公司专注于为企业提供成都网站建设、成都网站制作、微信公众号开发、商城开发小程序开发,软件按需制作网站等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,成都创新互联公司更提供一系列网站制作和网站推广的服务。

这里面应该写用户的全路径名,比如cn=xxxxx,dc=combatelecom,dc=com

说白了就是你怎么从根节点找到的用户,把用户节点的dn拷贝出来就行了

另外那个URL部分写成env.put(Context.PROVIDER_URL,"ldap://10.10.0.13:389")

Java获取Ldap叶子节点

使用netscape的ldap工具包。使用其它的工具包,写法类似。

注:必须知道base dn,以下假定ou=admin为base dn。若有明确的base dn,那写法比如:ou=admin,o=test1

源代码如下:

==========================

import netscape.ldap.*;

public class SearchTest {

public static void main(String[] args) {

LDAPConnection lc = null;

LDAPEntry findEntry = null;

int status = -1;

try {

// lc = ConnectionPool.

lc = new LDAPConnection();

/* Connect to server */

String MY_HOST = "localhost";

int MY_PORT = 389;

lc.connect(MY_HOST, MY_PORT);

System.out.println("1=========" +lc.isConnected());

lc.authenticate("cn=Directory Manager","password");

System.out.println("2=========" +lc.isConnected());

/* search for all entries with surname of Jensen */

String MY_FILTER = "(objectclass=*)";

String MY_SEARCHBASE = "ou=admin";

LDAPSearchConstraints cons = lc.getSearchConstraints();

cons.setBatchSize(0);

cons.setMaxResults(5);

MY_FILTER = "(objectclass=*)" ;

LDAPSearchResults res = lc.search(MY_SEARCHBASE,

LDAPConnection.SCOPE_ONE,

MY_FILTER,

null,

false,

cons);

while (res.hasMoreElements()) {

LDAPEntry cLDAPEntry = res.next() ;

System.out.println("" + cLDAPEntry.getDN());

System.out.println("" + cLDAPEntry.toString());

}

status = 0;

} catch (LDAPException e) {

System.out.println("Error: " + e.toString());

e.printStackTrace();

}

/* Done, so disconnect */

if ((lc != null) lc.isConnected()) {

try {

lc.disconnect();

System.out.println("3=========" +lc.isConnected());

} catch (LDAPException e) {

System.out.println("Error: " + e.toString());

}

}

System.out.println("4=========" +lc.isConnected());

System.exit(status);

}

}

关于ldap java验证的问题

我写过这类代码,与你这段代码有些不一样。

env.put(Context.SECURITY_AUTHENTICATION, "none");这段中我指定他的认证方式是"simple",也就是采用用户名/密码的方式认证,我也不是很清楚采用none是否能够成功认证。

认证用的用户名应该要写全,你需要查看每一个上级节点的属性,打个比方,IS是CN,FADU是DC,funo.com.cn是DC,那你的认证用户名就应该是:

DC=funo.com.cn,DC=FADU,CN=IS,CN=caiwei

你先试一下吧,还有问题再讨论,令附上LDAP ERROR CODE:

java 怎么样实现新建一个ldap OU,通过用户在控制台自定义输入DN,在AD中自动建好OU相关目录?

写代码程序把你写的这个 DN,分拆成每个 SubContext ,然后在代码中绑定上去:

// initialize config

Properties config = new Properties();

config.setProperty(Context.PROVIDER_URL, 你的 root URL);

Context root = new InititalContext().lookup("");

Context abc = root.createSubContext("ou=Abc");

Context cde = abc.createSubContext("ou=Cde");

...

你的收到的 DN 分拆成这几个步骤依次 createSubContext 就好了。


标题名称:ldapjava源代码 ldapjdk
分享路径:http://scyanting.com/article/docscph.html