| | |
| | | |
| | | // If the modification is updating the password attribute, then |
| | | // perform any necessary password policy processing. This processing |
| | | // should be skipped for internal and synchronization operations. |
| | | // should be skipped for synchronization operations. |
| | | boolean isPassword = t.equals(pwPolicyState.getPasswordAttribute()); |
| | | if (isPassword && |
| | | (! (isInternalOperation() || isSynchronizationOperation()))) |
| | | if (isPassword && (!(isSynchronizationOperation()))) |
| | | { |
| | | // If the attribute contains any options, then reject it. Passwords |
| | | // will not be allowed to have options. |
| | | // If the attribute contains any options, then reject it. Passwords |
| | | // will not be allowed to have options. Skipped for internal |
| | | // operations. |
| | | if(!isInternalOperation()) |
| | | { |
| | | if (a.hasOptions()) |
| | | { |
| | | setResultCode(ResultCode.UNWILLING_TO_PERFORM); |
| | |
| | | appendErrorMessage(getMessage(msgID)); |
| | | break modifyProcessing; |
| | | } |
| | | |
| | | } |
| | | |
| | | // Check to see whether this will adding, deleting, or replacing |
| | | // password values (increment doesn't make any sense for passwords). |
| | |
| | | { |
| | | numPasswords = passwordsToAdd; |
| | | } |
| | | |
| | | // If there were multiple password values provided, then make |
| | | // sure that's OK. |
| | | if ((! pwPolicyState.allowMultiplePasswordValues()) && |
| | | |
| | | if ((!isInternalOperation()) && |
| | | (! pwPolicyState.allowMultiplePasswordValues()) && |
| | | (passwordsToAdd > 1)) |
| | | { |
| | | setResultCode(ResultCode.UNWILLING_TO_PERFORM); |
| | |
| | | { |
| | | if (pwPolicyState.passwordIsPreEncoded(v.getValue())) |
| | | { |
| | | if (! pwPolicyState.allowPreEncodedPasswords()) |
| | | if ((!isInternalOperation()) && |
| | | ! pwPolicyState.allowPreEncodedPasswords()) |
| | | { |
| | | setResultCode(ResultCode.UNWILLING_TO_PERFORM); |
| | | |
| | |
| | | { |
| | | if (pwPolicyState.passwordIsPreEncoded(v.getValue())) |
| | | { |
| | | if (selfChange) |
| | | if ((!isInternalOperation()) && selfChange) |
| | | { |
| | | setResultCode(ResultCode.UNWILLING_TO_PERFORM); |
| | | |