Я пытаюсь получить простой фрагмент кода для запуска в java-аутентификации в качестве связующего для Foxpass (размещенная служба LDAP), а затем пытается аутентифицировать другого пользователя. Я в основном создал связующее в моих настройках Foxpass и создал некоторых пользователей.Аутентификация пользователей LDAP после привязки с помощью Foxpass
Код:
Hashtable<String,String> env = new Hashtable <String,String>();
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, bindUser);
env.put(Context.SECURITY_CREDENTIALS, bindPassword);
env.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
env.put(Context.PROVIDER_URL, myFoxpassUrl);
try {
DirContext ldapContext = new InitialDirContext(env);
NamingEnumeration<SearchResult> results = null;
SearchControls controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
controls.setCountLimit(1);
controls.setTimeLimit(5000);
String searchString = "(&(objectCategory=user)(sAMAccountName=username))";
results = ldapContext.search("", searchString, controls);
System.out.println(results.hasMore());
}
catch (Exception e)
{
e.printStackTrace()
}
Связывание (аутентификация с bindUsername и bindPassword работает хорошо). Однако поиск пользователей возвращает 0 значений. Я попытался использовать:
sAMAccountName=myusername
[email protected]
sAMAccountName=CN=myusername,DC=mydomain,DC=com
Or
username=myusername
...
Or
[email protected]
Но ничего не работает. Любая помощь по поиску нужного формата для поиска.
Спасибо