| | |
| | | .isAllowed(this)) |
| | | { |
| | | setResultCode(ResultCode.INVALID_CREDENTIALS); |
| | | setAuthFailureReason(ERR_BIND_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS |
| | | .get(String.valueOf(bindDN))); |
| | | setAuthFailureReason(ERR_BIND_AUTHZ_INSUFFICIENT_ACCESS_RIGHTS.get()); |
| | | return; |
| | | } |
| | | } |
| | |
| | | if (userEntry == null) |
| | | { |
| | | throw new DirectoryException(ResultCode.INVALID_CREDENTIALS, |
| | | ERR_BIND_OPERATION_UNKNOWN_USER.get( |
| | | String.valueOf(bindDN))); |
| | | ERR_BIND_OPERATION_UNKNOWN_USER.get()); |
| | | } |
| | | else |
| | | { |
| | |
| | | if ((pwAttr == null) || (pwAttr.isEmpty())) |
| | | { |
| | | throw new DirectoryException(ResultCode.INVALID_CREDENTIALS, |
| | | ERR_BIND_OPERATION_NO_PASSWORD.get(String.valueOf(bindDN))); |
| | | ERR_BIND_OPERATION_NO_PASSWORD.get()); |
| | | } |
| | | |
| | | // Perform a number of password policy state checks for the user. |
| | |
| | | if (authPolicyState.isDisabled()) |
| | | { |
| | | throw new DirectoryException(ResultCode.INVALID_CREDENTIALS, |
| | | ERR_BIND_OPERATION_ACCOUNT_DISABLED.get(String.valueOf(userEntry |
| | | .getDN()))); |
| | | ERR_BIND_OPERATION_ACCOUNT_DISABLED.get()); |
| | | } |
| | | |
| | | // Invoke pre-operation plugins. |
| | |
| | | else |
| | | { |
| | | throw new DirectoryException(ResultCode.INVALID_CREDENTIALS, |
| | | ERR_BIND_OPERATION_INSECURE_SIMPLE_BIND.get( |
| | | String.valueOf(userEntry.getDN()))); |
| | | ERR_BIND_OPERATION_INSECURE_SIMPLE_BIND.get()); |
| | | } |
| | | } |
| | | |
| | |
| | | if (pwPolicyState.isDisabled()) |
| | | { |
| | | throw new DirectoryException(ResultCode.INVALID_CREDENTIALS, |
| | | ERR_BIND_OPERATION_ACCOUNT_DISABLED.get( |
| | | String.valueOf(userEntry.getDN()))); |
| | | ERR_BIND_OPERATION_ACCOUNT_DISABLED.get()); |
| | | } |
| | | else if (pwPolicyState.isAccountExpired()) |
| | | { |
| | | Message m = ERR_BIND_OPERATION_ACCOUNT_EXPIRED.get( |
| | | String.valueOf(userEntry.getDN())); |
| | | Message m = ERR_BIND_OPERATION_ACCOUNT_EXPIRED.get(); |
| | | pwPolicyState.generateAccountStatusNotification( |
| | | AccountStatusNotificationType.ACCOUNT_EXPIRED, userEntry, m, |
| | | AccountStatusNotification.createProperties(pwPolicyState, |
| | |
| | | } |
| | | |
| | | throw new DirectoryException(ResultCode.INVALID_CREDENTIALS, |
| | | ERR_BIND_OPERATION_ACCOUNT_FAILURE_LOCKED.get( |
| | | String.valueOf(userEntry.getDN()))); |
| | | ERR_BIND_OPERATION_ACCOUNT_FAILURE_LOCKED.get()); |
| | | } |
| | | else if (pwPolicyState.lockedDueToIdleInterval()) |
| | | { |
| | | Message m = ERR_BIND_OPERATION_ACCOUNT_IDLE_LOCKED.get( |
| | | String.valueOf(userEntry.getDN())); |
| | | |
| | | if (pwPolicyErrorType == null) |
| | | { |
| | | pwPolicyErrorType = PasswordPolicyErrorType.ACCOUNT_LOCKED; |
| | | } |
| | | |
| | | Message m = ERR_BIND_OPERATION_ACCOUNT_IDLE_LOCKED.get(); |
| | | pwPolicyState.generateAccountStatusNotification( |
| | | AccountStatusNotificationType.ACCOUNT_IDLE_LOCKED, userEntry, m, |
| | | AccountStatusNotification.createProperties(pwPolicyState, false, -1, |
| | |
| | | // Check to see if the account is locked due to the maximum reset age. |
| | | if (pwPolicyState.lockedDueToMaximumResetAge()) |
| | | { |
| | | Message m = ERR_BIND_OPERATION_ACCOUNT_RESET_LOCKED.get( |
| | | String.valueOf(userEntry.getDN())); |
| | | |
| | | if (pwPolicyErrorType == null) |
| | | { |
| | | pwPolicyErrorType = PasswordPolicyErrorType.ACCOUNT_LOCKED; |
| | | } |
| | | |
| | | Message m = ERR_BIND_OPERATION_ACCOUNT_RESET_LOCKED.get(); |
| | | pwPolicyState.generateAccountStatusNotification( |
| | | AccountStatusNotificationType.ACCOUNT_RESET_LOCKED, userEntry, m, |
| | | AccountStatusNotification.createProperties(pwPolicyState, false, |
| | |
| | | } |
| | | else |
| | | { |
| | | Message m = ERR_BIND_OPERATION_PASSWORD_EXPIRED.get( |
| | | String.valueOf(userEntry.getDN())); |
| | | Message m = ERR_BIND_OPERATION_PASSWORD_EXPIRED.get(); |
| | | |
| | | pwPolicyState.generateAccountStatusNotification( |
| | | AccountStatusNotificationType.PASSWORD_EXPIRED, userEntry, m, |
| | |
| | | } |
| | | else |
| | | { |
| | | Message m = ERR_BIND_OPERATION_PASSWORD_EXPIRED.get( |
| | | String.valueOf(userEntry.getDN())); |
| | | Message m = ERR_BIND_OPERATION_PASSWORD_EXPIRED.get(); |
| | | |
| | | pwPolicyState.generateAccountStatusNotification( |
| | | AccountStatusNotificationType.PASSWORD_EXPIRED, userEntry, m, |