0
私は、Foxpass(ホストされたLDAPサービス)のバインダーとしてJava認証で実行し、別のユーザーを認証しようとする単純なコードスニペットを取得しようとしていました。 私は基本的に私のFoxpass設定でバインダーを作成し、いくつかのユーザーも作成しました。Foxpassとのバインド後にLDAPにユーザーを認証する
コードは次のとおり
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]
しかし、何も動作していないようです。検索を行うための適切なフォーマットを見つけるための助け。
は、あなたのsearchStringのは、かつてのActive Directory環境に住んでいた私には思える