通过使用 ldap java 登录获取用户和人员列表
Get list of users & persons by login with ldap java
我目前正在开发一款包含正式员工信息甚至登录信息的应用程序。
我想做一个 LDAP 搜索过滤器,为我检索与我提供的登录列表相对应的特定用户的所有信息。
有点像 sql 中的 select 语句:select * from ldap where login in(my list of login)
我正在使用基本的 javax.naming.directory 以及所有的废话。
// set properties for our connection and provider
Properties properties = new Properties();
properties.put( Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory" );
properties.put( Context.PROVIDER_URL, "ldap://myserver.somewhere.com:389"; );
properties.put( Context.REFERRAL, "ignore" );
// set properties for authentication
properties.put( Context.SECURITY_PRINCIPAL, "User Name" );
properties.put( Context.SECURITY_CREDENTIALS, "password" );
InitialDirContext context = new InitialDirContext( properties );
到目前为止,我唯一能做的就是对所有对象用户说谎,如果我能直接得到我正在寻找的对象,那就太好了:)
非常感谢你们的帮助:)
String searchFilter = "your_query";
String ldapSearchBase = "dc=ad,dc=my-domain,dc=com"
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> results = context.search(ldapSearchBase, searchFilter, searchControls);
一个查询可能是这样的:
(&(objectClass=user)(sAMAccountName=" + accountName + "))
完整示例在这里:
http://www.adamretter.org.uk/blog/entries/LDAPTest.java
所以我必须在搜索过滤器中输入的最终查询是:
(&(objectCategory=person)
(|
(sAMAccountName=login1)
(sAMAccountName=login2)
(sAMAccountName=login3)
)
)
感谢您的帮助:)
我目前正在开发一款包含正式员工信息甚至登录信息的应用程序。
我想做一个 LDAP 搜索过滤器,为我检索与我提供的登录列表相对应的特定用户的所有信息。
有点像 sql 中的 select 语句:select * from ldap where login in(my list of login)
我正在使用基本的 javax.naming.directory 以及所有的废话。
// set properties for our connection and provider
Properties properties = new Properties();
properties.put( Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory" );
properties.put( Context.PROVIDER_URL, "ldap://myserver.somewhere.com:389"; );
properties.put( Context.REFERRAL, "ignore" );
// set properties for authentication
properties.put( Context.SECURITY_PRINCIPAL, "User Name" );
properties.put( Context.SECURITY_CREDENTIALS, "password" );
InitialDirContext context = new InitialDirContext( properties );
到目前为止,我唯一能做的就是对所有对象用户说谎,如果我能直接得到我正在寻找的对象,那就太好了:)
非常感谢你们的帮助:)
String searchFilter = "your_query";
String ldapSearchBase = "dc=ad,dc=my-domain,dc=com"
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> results = context.search(ldapSearchBase, searchFilter, searchControls);
一个查询可能是这样的:
(&(objectClass=user)(sAMAccountName=" + accountName + "))
完整示例在这里: http://www.adamretter.org.uk/blog/entries/LDAPTest.java
所以我必须在搜索过滤器中输入的最终查询是:
(&(objectCategory=person)
(|
(sAMAccountName=login1)
(sAMAccountName=login2)
(sAMAccountName=login3)
)
)
感谢您的帮助:)