LDAPException: неверные учетные данные (49) неверные учетные данные с граалями - PullRequest
1 голос
/ 25 августа 2011

Это импорт, который я использую:

import com.novell.ldap.*;
import java.io.UnsupportedEncodingException;

и я пытаюсь выполнить очень простую проверку пароля, которую я нашел по адресу:

http://developer.novell.com/documentation/samplecode/jldap_sample/index.htm

и я не могу заставить себя работать. У кого-нибудь есть лучший способ сделать это с помощью грааля или Java. Я чувствую себя действительно потерянным, и любые примеры или указания помогут.

Спасибо.

1 Ответ

1 голос
/ 26 августа 2011

В этом примере Java используется UnboundID LDAP SDK для подключения и привязки к серверу каталогов.Запустите его как:

$ java -cp YOUR_CLASSPATH BindExample hostname port bindDn password

BindExample.java:

import com.unboundid.ldap.sdk.BindRequest;
import com.unboundid.ldap.sdk.BindResult;
import com.unboundid.ldap.sdk.Control;
import com.unboundid.ldap.sdk.LDAPConnection;
import com.unboundid.ldap.sdk.LDAPException;
import com.unboundid.ldap.sdk.ResultCode;
import com.unboundid.ldap.sdk.SimpleBindRequest;

public final class BindExample {

    public static void main(String... args) {
    if(args.length == 4) {
        final String hostname = args[0];
        final String dn = args[2];
        final String password = args[3];
        int port;
        LDAPConnection ldapConnection;
        try {
            port = Integer.parseInt(args[1]);
        } catch(NumberFormatException nfx) {
            System.err.println(args[1] + " is not an integer, using 389");
            port = 389;
        }
        try {
            ldapConnection =
                new LDAPConnection(hostname,port);
        } catch(final LDAPException lex) {
            System.err.println("failed to connect to "
                   + hostname + " " +
                   lex.getMessage());
            return;
        }
        try {
            final BindRequest bindRequest =
                new SimpleBindRequest(dn,password);
            BindResult bindResult = 
                ldapConnection.bind(bindRequest);
            if(bindResult.getResultCode() == ResultCode.SUCCESS) {
                System.out.println("authentication successful");
            }
            if(bindResult.hasResponseControl()) {
                Control[] controls = 
                    bindResult.getResponseControls();
                // handle response controls ...
            }
            ldapConnection.close();
        } catch(final LDAPException lex ) {
            System.err.println("bind failed");
            ldapConnection.close();
            return;
        }
    }
  }
}
...