(opendj-ldap-sdk-2.6.0) параметр метода привязки - пароль char [ ]

Я использую библиотеку jar opendj-ldap-sdk-2.6.0 для поиска записи LDAP. Я следую за гидом. (https://backstage.forgerock.com/docs/opendj/2.6/dev-guide/#chap-using-the-sdk)

исходный код:

import org.forgerock.opendj.ldap.Connection;
import org.forgerock.opendj.ldap.LDAPConnectionFactory;
import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.opendj.ldap.responses.SearchResultEntry;
import org.forgerock.opendj.ldap.responses.SearchResultReference;
import org.forgerock.opendj.ldif.ConnectionEntryReader;
import org.forgerock.opendj.ldif.LDIFEntryWriter;

public class Test {

public static void main(String[] args) {

    final LDIFEntryWriter writer = new LDIFEntryWriter(System.out);
    Connection connection = null; 

    try { 
        final LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost",389);

        connection = factory.getConnection();
        connection.bind("cn = Directory Mangager", password );
        // password is just an example of the password. 

        final ConnectionEntryReader reader = connection.search("dc=example,dc=com", SearchScope.WHOLE_SUBTREE,"(uid=bjensen)","*");
        while (reader.hasNext()) {
            if(reader.isEntry()) {
                final SearchResultEntry entry = reader.readEntry();
                writer.writeComment("Search result entry:" + entry.getName().toString());
                writer.writeEntry(entry);
            } else {
                final SearchResultReference ref = reader.readReference();
                writer.writeComment("Search result reference:" + ref.getURIs().toString());
            }
        }
        writer.flush();
    } catch (final Exception e) { 
        System.err.println(e.getMessage());
    } finally { 
        if (connection !=null) { 
            connection.close(); 
        }
    }
}

connection.bind("cn = Диспетчер каталогов", пароль);

Я получаю красную строку в этой строке под паролем, потому что параметр должен быть 'char []'.
Я зафиксировал метод Bind ниже.

введите здесь описание изображения

Если мой пароль 1234, как я могу изменить его на тип char []?


person Jin Lee    schedule 21.12.2018    source источник
comment
Вы пропустили звонок с завода, чтобы установить связь.   -  person Ludovic Poitou    schedule 21.12.2018


Ответы (2)


Вы пропустили звонок с завода, чтобы установить связь.

  connection = factory.getConnection();
  connection.bind("cn = Directory Mangager", password );
person Ludovic Poitou    schedule 21.12.2018
comment
Даже с этим, это не решает мой вопрос. Я продолжаю получать красную строку под паролем, говоря ее значение char или что-то в этом роде. Я поставил ' вместо (String). все еще не работает. - person Jin Lee; 26.12.2018
comment
В вашем фрагменте кода переменная password не определена. Это должен быть char[], а значение должно быть допустимым набором символов UTF-8. - person Ludovic Poitou; 02.01.2019
comment
благодарю вас. пароль не был переменной. по мануалу там должен быть пароль. Я поставил «пароль[» в качестве примера пароля. Я видел часть описания char[ ], но не мог понять :(. Если мой пароль 1234 , как я могу преобразовать его в тип char[ ]? - person Jin Lee; 02.01.2019
comment
Эй, спасибо за ваши советы. С вашей помощью я разобрался. Ура~ - person Jin Lee; 03.01.2019

Я понял.

connection.bind("cn=Directory Manager", "yourpassword".toCharArray());

Вы можете использовать toCharArray()

Кроме того, как упоминал выше Людовик Пуату, вам необходимо использовать
connection = factory.getConnection(); с методом привязки. В руководстве говорится, что если вы не используете анонимный поиск, используйте метод привязки, но вы должны использовать их оба. (неправильно понял руководство)

person Jin Lee    schedule 03.01.2019
comment
Ну, это правильно задокументировано в правильном разделе: backstage. forgerock.com/docs/opendj/2.6/dev-guide/ - person Ludovic Poitou; 03.01.2019