Не удалось поймать исключение из журнала - PullRequest
0 голосов
/ 25 ноября 2011

При попытке войти на сервер ldap с просроченным паролем в журнале возникает исключение.

javax.naming.AuthenticationException: [LDAP: код ошибки 49 - 80090308: LdapErr: DSID-0C0903A9, комментарий: ошибка AcceptSecurityContext, данные 773, v1db0

Я хочу дать пользователю соответствующее сообщение, но я не могу перехватить это исключение.(как я могу получить исключение, которое отображается в журнале? потому что data 773 означает, что срок действия пароля истек

                CallbackHandler handler = new UsernamePasswordHandler(
                        username, password);
                LoginContext lc = new LoginContext(applicationPolicyName,
                        handler);

                try {
                    lc.login();
                } catch (Exception){
                    log.warn(e.getMessage());
                }

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

при условии, что вы хотите перехватить данные типа javax.naming.AuthenticationException, вы можете поместить его в блок try catch как:

try {
  lc.login();
} catch(AuthenticationException e) {
   processError(e.getMessage());
}

...
private void processError(String errorMessage) {
  if (errorMessage.contains("data 773")) {
     // then do your stuff here like add error message as label etc
  }
}
1 голос
/ 25 ноября 2011

Вам необходимо получить трассировку стека исключений.(Если необходимо, измените свои конфигурации журналирования, чтобы трассировка стека записывалась в журналы.)

Это скажет вам, где выдается исключение.

Затем проверьте исходный код, чтобы увидеть, гдеон перехватывается и регистрируется, и посмотрите, есть ли в вашем коде апстак, который мог бы его перехватить первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...