Привязка к серверу LDAP с использованием UnboundID
Мне нужна помощь с привязкой к серверу LDAP с помощью SASL
.
Информация о сервере LDAP:
поддерживаетсяLDAPVersion (2): 3; 2;
supportedSASLMechanisms (4): GSSAPI; ГСС-СПНЕГО; ВНЕШНИЙ; ДАЙДЖЕСТ-МД5;
.
Используя приведенный ниже код, я могу успешно подключиться, привязать и выполнить поиск на сервере LDAP. Однако я хочу выполнить привязку, используя dn и пароль пользователя, вошедшего в систему (без запроса или жесткого кодирования учетных данных). Есть предложения, как это сделать? * Приносит извинения, если кодирование ужасно, я новичок в кодировании и более чем рад указателям :)
package LDAP;
import com.unboundid.ldap.sdk.*;
public class LdapConnection {
public static void main(String[] args) throws LDAPException {
try {
// CREATE LDAP OPTIONS
LDAPConnectionOptions ldapOptions = new LDAPConnectionOptions();
ldapOptions.setUseSynchronousMode(true);
// CREATE LDAP CONNECTION
LDAPConnection connection = null;
connection = new LDAPConnection(ldapOptions, "server.ca", 3268);
System.out.println(connection);
System.out.println(" ");
// BIND TO LDAP SERVER
connection.bind("CN=Last\\, First,OU=Users,dc=Company,dc=CA", "Password");
// CREATE VARIABLE TO SEARCH FOR
String AD_Group = "Guests";
// CREATE SEARCH REQUEST
String baseDN = "dc=Company,dc=CA";
Filter searchFilter = Filter.createEqualityFilter("SamAccountName", AD_Group);
SearchRequest searchRequest = new SearchRequest(baseDN, SearchScope.SUB, searchFilter, "*");
// PERFORM SEARCH
SearchResult searchQueryResults = connection.search(searchRequest);
// DISPLAY SEARCH RESULTS
System.out.println(searchQueryResults);
for (SearchResultEntry entry : searchQueryResults.getSearchEntries()) {
String SamAccountName = entry.getAttributeValue("SamAccountName");
String DistinguishedName = entry.getAttributeValue("DistinguishedName");
System.out.println(SamAccountName);
System.out.println(DistinguishedName);
System.out.println(" ");
}
// TOSS ERROR IF ENTRIES
if (searchQueryResults.getEntryCount() == 0) {
System.out.println("No Search Results Found");
System.out.println(" ");
}
}
catch (Exception e) {
System.out.println(" ");
System.out.println("Catch Activated");
System.out.println(e);
}
}
}