Я предполагаю, что когда вы говорите Windows ID для аутентификации, ваш LDAP на самом деле Active Directory.
Если вы просто хотите найти пользователя по LanId в Active Directory:
- подключение к Active с использованием имени пользователя и пароля учетной записи администратора / службы.
- поиск пользователя со следующим фильтром:
"(&(objectClass=user)(sAMAccountName=" + searchUsername + "))"
Если вы хотите аутентифицировать пользователя:
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");// can make it variable, not needed so far
environment.put(Context.SECURITY_AUTHENTICATION, "simple"); // can make it variable, not needed so far
environment.put(Context.PROVIDER_URL, url);
environment.put(Context.SECURITY_PRINCIPAL, username + "@" + domain); // This is specific to AD
environment.put(Context.SECURITY_CREDENTIALS, password);
return new InitialLdapContext(environment, null);
Если приведенный выше код успешно выполнен без исключения, это означает, что пользователь предоставил правильное имя пользователя / пароль