исключение - Java-доступ к ldap-серверу после перезапуска ldap-сервера - PullRequest
0 голосов
/ 23 марта 2011

У меня следующая проблема, я получаю контекст из LDAP, настраивая свойства среды JNDI для InitialContext, как показано ниже. Затем я перезагружаю сервер ldap, и каждый раз, когда я пытаюсь снова получить InitialContext, выдается следующее исключение.

Код для получения контекста.

  Context ctx = null;

  Hashtable ht = new Hashtable();
  ht.put(Context.INITIAL_CONTEXT_FACTORY,
         "weblogic.jndi.WLInitialContextFactory");
  ht.put(Context.PROVIDER_URL,"t3://localhost:7001");
  ht.put(Context.SECURITY_PRINCIPAL,"USER1");
  ht.put(Context.CREDENTIALS,"PASSWORD1");
  try {
    ctx = new InitialContext(ht);
  }
  catch (NamingException e) {
  }
  finally {
    try {ctx.close();
  }
  catch (Exception e) {
      // a failure occurred
  }
  }

Исключение:

  java.security.PrivilegedActionException: javax.naming.ConfigurationException: Call to NamingManager.getObjectInstance() failed:
[Root exception is java.lang.SecurityException:
[Security:090398]Invalid Subject: principals=[ADMIN]]; remaining name ''
BEA-090398

1 Ответ

1 голос
/ 23 марта 2011

Вы не предоставляете правильный DN для аутентификации:

ht.put(Context.SECURITY_PRINCIPAL,"USER1");

Вы должны иметь cn = user1, ou = что-то, dc = что-то, dc = com или тому подобное.

...