0

У меня есть один вопрос, я пытаюсь выполнить аутентификацию AD через LDAP, и когда я помещаю недопустимые учетные данные, я получил сообщение об исключении: LDAPException(resultCode=49 (invalid credentials), errorMessage='80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db0, и это нормально, но точнее причиной этого исключения является часть «данных 52e», и это говорит мне «неверные учетные данные». Когда учетные данные являются хорошими, но, например, «Истек срок действия пароля» в сообщении об исключении, я получу «данные 532». Эта часть сообщения может иметь разные значения в зависимости от причины исключения (533-аккаунт отключен, 701-аккаунт истек и т. Д.). Моя проблема заключается в том, как поймать только эту часть сообщения об исключении. Я хочу обработать исключение в соответствии с этим кодом ошибки. Например:LDAP Authentication to AD код ошибки

switch(err_code){ 
case 52e: 
System.out.println("invalid credentials"); 
break; 
case "530,": 
System.out.println("not permitted to logon at this time"); 
break; 
} 

Но я не хочу использовать регулярные выражения для соответствия коду ошибки. Есть идеи?

+0

Проверьте содержимое диагностического сообщения с помощью LDAPException # getDiagnosticMessage() –

ответ

0

Эти коды, вероятно, специфичны для реализации Active Directory. Взгляните на объяснение similar question.