浏览 17100 次
锁定老帖子 主题:用JAVA实现LDAP的访问(二)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-04
先说说怎么查询,其实查询非常的简单,如果用过JDBC连数据库的话,那么连LDAP相比起来更加的简单。
首先建立一个LDAPConnection对象。这个对象也可以通过连接池PoolManager来获得。LDAPConnection con = new LDAPConnection();然后运行connect方法和bind方法。连接上LDAP以后,就可以通过search方法来查找数据了。示例程序如下:
java 代码
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-30
这样的程序会导致ldap服务器死机地,需要关闭ldap连接
|
|
返回顶楼 | |
发表时间:2007-06-14
呵呵, 就是。。。
|
|
返回顶楼 | |
发表时间:2007-06-14
看不出用JLDAP有什么优势, 我也刚刚开始学。
我写了个测试例子,请指点: public void testLdap() { try { DirContext context = getContext(); addEntry(context, "uid=oracle,ou=people,dc=mycompany,dc=com"); printEntry(context, "uid=oracle,ou=people,dc=mycompany,dc=com"); context.close(); } catch (AuthenticationException e) { e.printStackTrace(); } catch (NamingException e) { e.printStackTrace(); } } public DirContext getContext() throws NamingException { Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=mycompany,dc=com"); env.put(Context.SECURITY_CREDENTIALS, "secret"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); //"none", "simple", "strong" DirContext initial = new InitialDirContext(env); DirContext context = (DirContext) initial.lookup("ldap://localhost:389"); return context; } public void addEntry(DirContext context, String dn) throws NamingException { Attributes attrs = new BasicAttributes(); attrs.put("uid", "oracle"); attrs.put("sn", "Lee"); attrs.put("cn", "Amy Lee"); attrs.put("telephoneNumber", "+1 408 555 0033"); attrs.put("userPassword", "redqueen".getBytes()); //the following attribute has two values Attribute objclass = new BasicAttribute("objectClass"); objclass.add("uidObject"); objclass.add("person"); attrs.put(objclass); context.createSubcontext(dn, attrs); } |
|
返回顶楼 | |
发表时间:2007-06-14
看见还有一种写法用来获取 DirContext, 下面的写法指定了 INITIAL_CONTEXT_FACTORY属性,我想知道我前面一种写法里面, env.put(Context.INITIAL_CONTEXT_FACTORY, ?);
这个INITIAL_CONTEXT_FACTORY 我没有设置, 不知道默认是什么? Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389"); env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=mycompany,dc=com"); env.put(Context.SECURITY_CREDENTIALS, "secret"); //env.put(Context.SECURITY_AUTHENTICATION, "simple"); //"none", "simple", "strong" DirContext context = new InitialDirContext(env); |
|
返回顶楼 | |
发表时间:2007-06-14
我觉得自己发表的帖子, 要是可以修改就好了。
|
|
返回顶楼 | |