java 检索ldap,从LDAP(Java)检索信息
我正在嘗試從LDAP服務器檢索數據,但它失敗了. (連接工程).我很難理解最后一行中search()方法需要哪些參數……
“mail”是我想要獲取的信息,userName是經過身份驗證的用戶.
DirContext authContext = new InitialDirContext(authEnv);
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration results = authContext.search("mail",userName,constraints);
這是我的錯誤消息(在最后一行出現):
javax.naming.directory.InvalidSearchFilterException: Missing 'equals'; remaining name 'mail'
at com.sun.jndi.ldap.Filter.encodeSimpleFilter(Unknown Source)
at com.sun.jndi.ldap.Filter.encodeFilter(Unknown Source)
at com.sun.jndi.ldap.Filter.encodeFilterString(Unknown Source)
at com.sun.jndi.ldap.LdapClient.search(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.doSearch(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.searchAux(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at javax.naming.directory.InitialDirContext.search(Unknown Source)
at Client.connect(Client.java:48)
at Client.main(Client.java:23)
感謝所有答案,如果我按要求更改我的代碼,我會收到以下錯誤:
javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C0906E9,comment: In order to perform this operation a successful bind must be completed on the
connection.,data 0,v1db1
我的連接代碼就是這個:
Properties authEnv = new Properties();
String userName = "XXX";
String passWord = "XXX";
String base = "XXX";
String dn = "uid=" + userName + "," + base;
String ldapURL = "XXX";
authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
authEnv.put(Context.PROVIDER_URL,ldapURL);
authEnv.put(Context.SECURITY_AUTHENTICATION,"none");
authEnv.put(Context.SECURITY_PRINCIPAL,dn);
authEnv.put(Context.SECURITY_CREDENTIALS,passWord);
總結
以上是生活随笔為你收集整理的java 检索ldap,从LDAP(Java)检索信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5控制符置于底层,HTML5占位
- 下一篇: python os renames_Py