There are a list of situations you might want to handle with Active Directory:
525 - user not found
52e - invalid credentials
530 - not permitted to logon at this time
532 - password expired
533 - account disabled
701 - account expired
773 - user must reset password
This is an extract of the Java Forum to handle these cases. Good Luck!
} catch (AuthenticationException e) {
String tempString;
StringTokenizer tokenizerTemp = new StringTokenizer(e.toString());
while (tokenizerTemp.hasMoreElements()) {
tempString = tokenizerTemp.nextToken();
if (tempString.equalsIgnoreCase("AcceptSecurityContext")) {
while (tokenizerTemp.hasMoreElements()) {
tempString = tokenizerTemp.nextToken();
if (tempString.startsWith("773"))
setIsPasswordExpired(true);
if (tempString.startsWith("52e"))
setIsPasswordWrong(true);
if (tempString.startsWith("533"))
setIsAccountDisabled(true);
}
}
}
throw new NamingException();
}