Search in sources :

Example 1 with NoOpRequestControl

use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.

the class LDAPPasswordModify method getUpdateControls.

/**
 * Retrieves the controls that should be included in the password update
 * request.
 *
 * @return  The controls that should be included in the password update
 *          request, or an empty array if no controls should be included.
 *
 * @throws  LDAPException  If a problem occurs while trying to create any of
 *                         the controls.
 */
@NotNull()
private Control[] getUpdateControls() throws LDAPException {
    final List<Control> controls = new ArrayList<>();
    if (updateControl.isPresent()) {
        controls.addAll(updateControl.getValues());
    }
    if (usePasswordPolicyControlOnUpdate.isPresent()) {
        controls.add(new PasswordPolicyRequestControl());
    }
    if (noOperation.isPresent()) {
        controls.add(new NoOpRequestControl());
    }
    if (getPasswordValidationDetails.isPresent()) {
        controls.add(new PasswordValidationDetailsRequestControl());
    }
    if (retireCurrentPassword.isPresent()) {
        controls.add(new RetirePasswordRequestControl(false));
    }
    if (purgeCurrentPassword.isPresent()) {
        controls.add(new PurgePasswordRequestControl(false));
    }
    if (passwordUpdateBehavior.isPresent()) {
        controls.add(LDAPModify.createPasswordUpdateBehaviorRequestControl(passwordUpdateBehavior.getIdentifierString(), passwordUpdateBehavior.getValues()));
    }
    if (operationPurpose.isPresent()) {
        controls.add(new OperationPurposeRequestControl(false, getToolName(), getToolVersion(), LDAPPasswordModify.class.getName() + ".getUpdateControls", operationPurpose.getValue()));
    }
    if (useAssuredReplication.isPresent()) {
        AssuredReplicationLocalLevel localLevel = null;
        if (assuredReplicationLocalLevel.isPresent()) {
            final String level = assuredReplicationLocalLevel.getValue();
            if (level.equalsIgnoreCase(ASSURED_REPLICATION_LOCAL_LEVEL_NONE)) {
                localLevel = AssuredReplicationLocalLevel.NONE;
            } else if (level.equalsIgnoreCase(ASSURED_REPLICATION_LOCAL_LEVEL_RECEIVED_ANY_SERVER)) {
                localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
            } else if (level.equalsIgnoreCase(ASSURED_REPLICATION_LOCAL_LEVEL_PROCESSED_ALL_SERVERS)) {
                localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
            }
        }
        AssuredReplicationRemoteLevel remoteLevel = null;
        if (assuredReplicationRemoteLevel.isPresent()) {
            final String level = assuredReplicationRemoteLevel.getValue();
            if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_NONE)) {
                remoteLevel = AssuredReplicationRemoteLevel.NONE;
            } else if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_RECEIVED_ANY_REMOTE_LOCATION)) {
                remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
            } else if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_RECEIVED_ALL_REMOTE_LOCATIONS)) {
                remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
            } else if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_PROCESSED_ALL_REMOTE_SERVERS)) {
                remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
            }
        }
        Long timeoutMillis = null;
        if (assuredReplicationTimeout.isPresent()) {
            timeoutMillis = assuredReplicationTimeout.getValue(TimeUnit.MILLISECONDS);
        }
        controls.add(new AssuredReplicationRequestControl(true, localLevel, localLevel, remoteLevel, remoteLevel, timeoutMillis, false));
    }
    return controls.toArray(StaticUtils.NO_CONTROLS);
}
Also used : PurgePasswordRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PurgePasswordRequestControl) AssuredReplicationRemoteLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRemoteLevel) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) AssuredReplicationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl) ArrayList(java.util.ArrayList) OperationPurposeRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl) AuthorizationIdentityRequestControl(com.unboundid.ldap.sdk.controls.AuthorizationIdentityRequestControl) Control(com.unboundid.ldap.sdk.Control) GetUserResourceLimitsRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetUserResourceLimitsRequestControl) GetAuthorizationEntryRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetAuthorizationEntryRequestControl) PurgePasswordRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PurgePasswordRequestControl) AssuredReplicationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl) RetirePasswordRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.RetirePasswordRequestControl) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) OperationPurposeRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl) PasswordPolicyRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordPolicyRequestControl) PasswordValidationDetailsRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordValidationDetailsRequestControl) RetirePasswordRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.RetirePasswordRequestControl) PasswordPolicyRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordPolicyRequestControl) PasswordValidationDetailsRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordValidationDetailsRequestControl) AssuredReplicationLocalLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationLocalLevel) NotNull(com.unboundid.util.NotNull)

Example 2 with NoOpRequestControl

use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.

the class CollectSupportData method doExtendedOperationProcessing.

/**
 * Performs the collect-support-data processing against a remote server using
 * the extended operation.
 *
 * @return  A result code that indicates the result of the processing.
 */
@NotNull()
private ResultCode doExtendedOperationProcessing() {
    // Create a connection pool that will be used to communicate with the
    // server.  Use an administrative session if appropriate.
    final StartAdministrativeSessionPostConnectProcessor p;
    if (useAdministrativeSessionArg.isPresent()) {
        p = new StartAdministrativeSessionPostConnectProcessor(new StartAdministrativeSessionExtendedRequest(getToolName(), true));
    } else {
        p = null;
    }
    final LDAPConnectionPool pool;
    try {
        pool = getConnectionPool(1, 1, 0, p, null, true, new ReportBindResultLDAPConnectionPoolHealthCheck(this, true, false));
    } catch (final LDAPException e) {
        Debug.debugException(e);
        wrapErr(0, WRAP_COLUMN, e.getMessage());
        toolCompletionMessage.set(e.getMessage());
        return e.getResultCode();
    }
    try {
        // Create the properties to use for the extended request.
        final CollectSupportDataExtendedRequestProperties properties = new CollectSupportDataExtendedRequestProperties();
        final File outputPath = outputPathArg.getValue();
        if (outputPath != null) {
            if (!(outputPath.exists() && outputPath.isDirectory())) {
                properties.setArchiveFileName(outputPath.getName());
            }
        }
        try {
            properties.setEncryptionPassphrase(getEncryptionPassphraseForExtOpProcessing());
        } catch (final LDAPException e) {
            Debug.debugException(e);
            wrapErr(0, WRAP_COLUMN, e.getMessage());
            toolCompletionMessage.set(e.getMessage());
            return e.getResultCode();
        }
        properties.setIncludeExpensiveData(collectExpensiveDataArg.isPresent());
        properties.setIncludeReplicationStateDump(collectReplicationStateDumpArg.isPresent());
        properties.setIncludeBinaryFiles(includeBinaryFilesArg.isPresent());
        properties.setIncludeExtensionSource(archiveExtensionSourceArg.isPresent());
        properties.setUseSequentialMode(sequentialArg.isPresent());
        if (securityLevelArg.isPresent()) {
            properties.setSecurityLevel(CollectSupportDataSecurityLevel.forName(securityLevelArg.getValue()));
        }
        if (jstackCountArg.isPresent()) {
            properties.setJStackCount(jstackCountArg.getValue());
        }
        if (reportCountArg.isPresent()) {
            properties.setReportCount(reportCountArg.getValue());
        }
        if (reportIntervalSecondsArg.isPresent()) {
            properties.setReportIntervalSeconds(reportIntervalSecondsArg.getValue());
        }
        if (logTimeRangeArg.isPresent()) {
            try {
                final ObjectPair<Date, Date> timeRange = parseTimeRange(logTimeRangeArg.getValue(), true);
                properties.setLogCaptureWindow(new TimeWindowCollectSupportDataLogCaptureWindow(timeRange.getFirst(), timeRange.getSecond()));
            } catch (final LDAPException e) {
                // This should never happen because we should have pre-validated the
                // value.  But handle it just in case.
                Debug.debugException(e);
                wrapErr(0, WRAP_COLUMN, e.getMessage());
                toolCompletionMessage.set(e.getMessage());
                return e.getResultCode();
            }
        } else if (logDurationArg.isPresent()) {
            properties.setLogCaptureWindow(new DurationCollectSupportDataLogCaptureWindow(logDurationArg.getValue(TimeUnit.MILLISECONDS)));
        } else if (logFileHeadCollectionSizeKBArg.isPresent() || logFileTailCollectionSizeKBArg.isPresent()) {
            properties.setLogCaptureWindow(new HeadAndTailSizeCollectSupportDataLogCaptureWindow(logFileHeadCollectionSizeKBArg.getValue(), logFileTailCollectionSizeKBArg.getValue()));
        }
        if (commentArg.isPresent()) {
            properties.setComment(commentArg.getValue());
        }
        if (proxyToServerAddressArg.isPresent()) {
            properties.setProxyToServer(proxyToServerAddressArg.getValue(), proxyToServerPortArg.getValue());
        }
        // Create the intermediate response listener that will be used to handle
        // output and archive fragment messages.
        ResultCode resultCode = null;
        try (CollectSupportDataIRListener listener = new CollectSupportDataIRListener(this, outputPathArg.getValue())) {
            // Construct the extended request to send to the server.
            final Control[] controls;
            if (dryRunArg.isPresent()) {
                controls = new Control[] { new NoOpRequestControl() };
            } else {
                controls = StaticUtils.NO_CONTROLS;
            }
            final CollectSupportDataExtendedRequest request = new CollectSupportDataExtendedRequest(properties, listener, controls);
            request.setResponseTimeoutMillis(0L);
            // Send the request and read the result.
            final CollectSupportDataExtendedResult result;
            try {
                result = (CollectSupportDataExtendedResult) pool.processExtendedOperation(request);
            } catch (final LDAPException e) {
                Debug.debugException(e);
                final String message = ERR_CSD_ERROR_SENDING_REQUEST.get(StaticUtils.getExceptionMessage(e));
                wrapErr(0, WRAP_COLUMN, message);
                toolCompletionMessage.set(message);
                return e.getResultCode();
            }
            resultCode = result.getResultCode();
            final String diagnosticMessage = result.getDiagnosticMessage();
            if (diagnosticMessage != null) {
                if ((resultCode == ResultCode.SUCCESS) || (resultCode == ResultCode.NO_OPERATION)) {
                    wrapOut(0, WRAP_COLUMN, diagnosticMessage);
                } else {
                    wrapErr(0, WRAP_COLUMN, diagnosticMessage);
                }
                toolCompletionMessage.set(diagnosticMessage);
            } else {
                toolCompletionMessage.set(INFO_CSD_COMPLETED_WITH_RESULT_CODE.get(String.valueOf(resultCode)));
            }
        } catch (final IOException e) {
            Debug.debugException(e);
            if (resultCode == ResultCode.SUCCESS) {
                resultCode = ResultCode.LOCAL_ERROR;
                toolCompletionMessage.set(e.getMessage());
            }
        }
        return resultCode;
    } finally {
        pool.close();
    }
}
Also used : StartAdministrativeSessionPostConnectProcessor(com.unboundid.ldap.sdk.unboundidds.extensions.StartAdministrativeSessionPostConnectProcessor) TimeWindowCollectSupportDataLogCaptureWindow(com.unboundid.ldap.sdk.unboundidds.extensions.TimeWindowCollectSupportDataLogCaptureWindow) LDAPConnectionPool(com.unboundid.ldap.sdk.LDAPConnectionPool) CollectSupportDataExtendedRequest(com.unboundid.ldap.sdk.unboundidds.extensions.CollectSupportDataExtendedRequest) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) DurationCollectSupportDataLogCaptureWindow(com.unboundid.ldap.sdk.unboundidds.extensions.DurationCollectSupportDataLogCaptureWindow) ASN1OctetString(com.unboundid.asn1.ASN1OctetString) IOException(java.io.IOException) Date(java.util.Date) Control(com.unboundid.ldap.sdk.Control) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) StartAdministrativeSessionExtendedRequest(com.unboundid.ldap.sdk.unboundidds.extensions.StartAdministrativeSessionExtendedRequest) LDAPException(com.unboundid.ldap.sdk.LDAPException) CollectSupportDataExtendedRequestProperties(com.unboundid.ldap.sdk.unboundidds.extensions.CollectSupportDataExtendedRequestProperties) HeadAndTailSizeCollectSupportDataLogCaptureWindow(com.unboundid.ldap.sdk.unboundidds.extensions.HeadAndTailSizeCollectSupportDataLogCaptureWindow) File(java.io.File) ResultCode(com.unboundid.ldap.sdk.ResultCode) CollectSupportDataExtendedResult(com.unboundid.ldap.sdk.unboundidds.extensions.CollectSupportDataExtendedResult) NotNull(com.unboundid.util.NotNull)

Example 3 with NoOpRequestControl

use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.

the class LDAPDelete method getDeleteControls.

/**
 * Retrieves the set of controls that should be included in delete requests.
 *
 * @return  The set of controls that should be included in delete requests.
 */
@NotNull()
private List<Control> getDeleteControls() {
    final List<Control> controlList = new ArrayList<>(10);
    if (deleteControl.isPresent()) {
        controlList.addAll(deleteControl.getValues());
    }
    controlList.addAll(routeToBackendSetRequestControls);
    if (serverSideSubtreeDelete.isPresent()) {
        controlList.add(new SubtreeDeleteRequestControl(true));
    }
    if (softDelete.isPresent()) {
        controlList.add(new SoftDeleteRequestControl(true, true));
    }
    if (hardDelete.isPresent() && (!clientSideSubtreeDelete.isPresent())) {
        controlList.add(new HardDeleteRequestControl(true));
    }
    if (proxyAs.isPresent()) {
        controlList.add(new ProxiedAuthorizationV2RequestControl(proxyAs.getValue()));
    }
    if (proxyV1As.isPresent()) {
        controlList.add(new ProxiedAuthorizationV1RequestControl(proxyV1As.getValue().toString()));
    }
    if (manageDsaIT.isPresent() && (!clientSideSubtreeDelete.isPresent())) {
        controlList.add(new ManageDsaITRequestControl(true));
    }
    if (assertionFilter.isPresent()) {
        controlList.add(new AssertionRequestControl(assertionFilter.getValue(), true));
    }
    if (preReadAttribute.isPresent()) {
        controlList.add(new PreReadRequestControl(true, preReadAttribute.getValues().toArray(StaticUtils.NO_STRINGS)));
    }
    if (noOperation.isPresent()) {
        controlList.add(new NoOpRequestControl());
    }
    if (getBackendSetID.isPresent()) {
        controlList.add(new GetBackendSetIDRequestControl(true));
    }
    if (getServerID.isPresent()) {
        controlList.add(new GetServerIDRequestControl(true));
    }
    if (routeToServer.isPresent()) {
        controlList.add(new RouteToServerRequestControl(true, routeToServer.getValue(), false, false, false));
    }
    if (useAssuredReplication.isPresent()) {
        AssuredReplicationLocalLevel localLevel = null;
        if (assuredReplicationLocalLevel.isPresent()) {
            final String level = assuredReplicationLocalLevel.getValue();
            if (level.equalsIgnoreCase("none")) {
                localLevel = AssuredReplicationLocalLevel.NONE;
            } else if (level.equalsIgnoreCase("received-any-server")) {
                localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
            } else if (level.equalsIgnoreCase("processed-all-servers")) {
                localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
            }
        }
        AssuredReplicationRemoteLevel remoteLevel = null;
        if (assuredReplicationRemoteLevel.isPresent()) {
            final String level = assuredReplicationRemoteLevel.getValue();
            if (level.equalsIgnoreCase("none")) {
                remoteLevel = AssuredReplicationRemoteLevel.NONE;
            } else if (level.equalsIgnoreCase("received-any-remote-location")) {
                remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
            } else if (level.equalsIgnoreCase("received-all-remote-locations")) {
                remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
            } else if (level.equalsIgnoreCase("processed-all-remote-servers")) {
                remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
            }
        }
        Long timeoutMillis = null;
        if (assuredReplicationTimeout.isPresent()) {
            timeoutMillis = assuredReplicationTimeout.getValue(TimeUnit.MILLISECONDS);
        }
        final AssuredReplicationRequestControl c = new AssuredReplicationRequestControl(true, localLevel, localLevel, remoteLevel, remoteLevel, timeoutMillis, false);
        controlList.add(c);
    }
    if (replicationRepair.isPresent()) {
        controlList.add(new ReplicationRepairRequestControl());
    }
    if (suppressReferentialIntegrityUpdates.isPresent()) {
        controlList.add(new SuppressReferentialIntegrityUpdatesRequestControl(true));
    }
    if (operationPurpose.isPresent()) {
        controlList.add(new OperationPurposeRequestControl(true, "ldapdelete", Version.NUMERIC_VERSION_STRING, LDAPDelete.class.getName() + ".getDeleteControls", operationPurpose.getValue()));
    }
    return Collections.unmodifiableList(controlList);
}
Also used : RouteToServerRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.RouteToServerRequestControl) SuppressReferentialIntegrityUpdatesRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SuppressReferentialIntegrityUpdatesRequestControl) AssuredReplicationRemoteLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRemoteLevel) SoftDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SoftDeleteRequestControl) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) AssuredReplicationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl) ArrayList(java.util.ArrayList) ProxiedAuthorizationV2RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV2RequestControl) ASN1OctetString(com.unboundid.asn1.ASN1OctetString) PreReadRequestControl(com.unboundid.ldap.sdk.controls.PreReadRequestControl) OperationPurposeRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl) ProxiedAuthorizationV1RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV1RequestControl) AuthorizationIdentityRequestControl(com.unboundid.ldap.sdk.controls.AuthorizationIdentityRequestControl) Control(com.unboundid.ldap.sdk.Control) GetUserResourceLimitsRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetUserResourceLimitsRequestControl) RouteToServerRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.RouteToServerRequestControl) SubtreeDeleteRequestControl(com.unboundid.ldap.sdk.controls.SubtreeDeleteRequestControl) SimplePagedResultsControl(com.unboundid.ldap.sdk.controls.SimplePagedResultsControl) HardDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.HardDeleteRequestControl) GetBackendSetIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetBackendSetIDRequestControl) GetAuthorizationEntryRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetAuthorizationEntryRequestControl) ProxiedAuthorizationV2RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV2RequestControl) AssuredReplicationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl) SoftDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SoftDeleteRequestControl) ReplicationRepairRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.ReplicationRepairRequestControl) GetServerIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetServerIDRequestControl) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) ProxiedAuthorizationV1RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV1RequestControl) OperationPurposeRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl) SuppressReferentialIntegrityUpdatesRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SuppressReferentialIntegrityUpdatesRequestControl) AssertionRequestControl(com.unboundid.ldap.sdk.controls.AssertionRequestControl) RouteToBackendSetRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.RouteToBackendSetRequestControl) ManageDsaITRequestControl(com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl) PreReadRequestControl(com.unboundid.ldap.sdk.controls.PreReadRequestControl) AssertionRequestControl(com.unboundid.ldap.sdk.controls.AssertionRequestControl) HardDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.HardDeleteRequestControl) ReplicationRepairRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.ReplicationRepairRequestControl) GetBackendSetIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetBackendSetIDRequestControl) GetServerIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetServerIDRequestControl) AtomicLong(java.util.concurrent.atomic.AtomicLong) AssuredReplicationLocalLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationLocalLevel) SubtreeDeleteRequestControl(com.unboundid.ldap.sdk.controls.SubtreeDeleteRequestControl) ManageDsaITRequestControl(com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl) NotNull(com.unboundid.util.NotNull)

Example 4 with NoOpRequestControl

use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.

the class LDAPModify method createRequestControls.

/**
 * Populates lists of request controls that should be included in requests
 * of various types.
 *
 * @param  addControls       The list of controls to include in add requests.
 * @param  deleteControls    The list of controls to include in delete
 *                           requests.
 * @param  modifyControls    The list of controls to include in modify
 *                           requests.
 * @param  modifyDNControls  The list of controls to include in modify DN
 *                           requests.
 * @param  searchControls    The list of controls to include in search
 *                           requests.
 *
 * @throws  LDAPException  If a problem is encountered while creating any of
 *                         the requested controls.
 */
private void createRequestControls(@NotNull final List<Control> addControls, @NotNull final List<Control> deleteControls, @NotNull final List<Control> modifyControls, @NotNull final List<Control> modifyDNControls, @NotNull final List<Control> searchControls) throws LDAPException {
    if (addControl.isPresent()) {
        addControls.addAll(addControl.getValues());
    }
    if (deleteControl.isPresent()) {
        deleteControls.addAll(deleteControl.getValues());
    }
    if (modifyControl.isPresent()) {
        modifyControls.addAll(modifyControl.getValues());
    }
    if (modifyDNControl.isPresent()) {
        modifyDNControls.addAll(modifyDNControl.getValues());
    }
    if (operationControl.isPresent()) {
        addControls.addAll(operationControl.getValues());
        deleteControls.addAll(operationControl.getValues());
        modifyControls.addAll(operationControl.getValues());
        modifyDNControls.addAll(operationControl.getValues());
    }
    addControls.addAll(routeToBackendSetRequestControls);
    deleteControls.addAll(routeToBackendSetRequestControls);
    modifyControls.addAll(routeToBackendSetRequestControls);
    modifyDNControls.addAll(routeToBackendSetRequestControls);
    if (noOperation.isPresent()) {
        final NoOpRequestControl c = new NoOpRequestControl();
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (generatePassword.isPresent()) {
        addControls.add(new GeneratePasswordRequestControl());
    }
    if (getBackendSetID.isPresent()) {
        final GetBackendSetIDRequestControl c = new GetBackendSetIDRequestControl(false);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (getServerID.isPresent()) {
        final GetServerIDRequestControl c = new GetServerIDRequestControl(false);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (ignoreNoUserModification.isPresent()) {
        addControls.add(new IgnoreNoUserModificationRequestControl(false));
        modifyControls.add(new IgnoreNoUserModificationRequestControl(false));
    }
    if (nameWithEntryUUID.isPresent()) {
        addControls.add(new NameWithEntryUUIDRequestControl(true));
    }
    if (permissiveModify.isPresent()) {
        modifyControls.add(new PermissiveModifyRequestControl(false));
    }
    if (routeToServer.isPresent()) {
        final RouteToServerRequestControl c = new RouteToServerRequestControl(false, routeToServer.getValue(), false, false, false);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (suppressReferentialIntegrityUpdates.isPresent()) {
        final SuppressReferentialIntegrityUpdatesRequestControl c = new SuppressReferentialIntegrityUpdatesRequestControl(true);
        deleteControls.add(c);
        modifyDNControls.add(c);
    }
    if (suppressOperationalAttributeUpdates.isPresent()) {
        final EnumSet<SuppressType> suppressTypes = EnumSet.noneOf(SuppressType.class);
        for (final String s : suppressOperationalAttributeUpdates.getValues()) {
            if (s.equalsIgnoreCase("last-access-time")) {
                suppressTypes.add(SuppressType.LAST_ACCESS_TIME);
            } else if (s.equalsIgnoreCase("last-login-time")) {
                suppressTypes.add(SuppressType.LAST_LOGIN_TIME);
            } else if (s.equalsIgnoreCase("last-login-ip")) {
                suppressTypes.add(SuppressType.LAST_LOGIN_IP);
            } else if (s.equalsIgnoreCase("lastmod")) {
                suppressTypes.add(SuppressType.LASTMOD);
            }
        }
        final SuppressOperationalAttributeUpdateRequestControl c = new SuppressOperationalAttributeUpdateRequestControl(suppressTypes);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (usePasswordPolicyControl.isPresent()) {
        final PasswordPolicyRequestControl c = new PasswordPolicyRequestControl();
        addControls.add(c);
        modifyControls.add(c);
    }
    if (assuredReplication.isPresent()) {
        AssuredReplicationLocalLevel localLevel = null;
        if (assuredReplicationLocalLevel.isPresent()) {
            final String level = assuredReplicationLocalLevel.getValue();
            if (level.equalsIgnoreCase("none")) {
                localLevel = AssuredReplicationLocalLevel.NONE;
            } else if (level.equalsIgnoreCase("received-any-server")) {
                localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
            } else if (level.equalsIgnoreCase("processed-all-servers")) {
                localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
            }
        }
        AssuredReplicationRemoteLevel remoteLevel = null;
        if (assuredReplicationRemoteLevel.isPresent()) {
            final String level = assuredReplicationRemoteLevel.getValue();
            if (level.equalsIgnoreCase("none")) {
                remoteLevel = AssuredReplicationRemoteLevel.NONE;
            } else if (level.equalsIgnoreCase("received-any-remote-location")) {
                remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
            } else if (level.equalsIgnoreCase("received-all-remote-locations")) {
                remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
            } else if (level.equalsIgnoreCase("processed-all-remote-servers")) {
                remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
            }
        }
        Long timeoutMillis = null;
        if (assuredReplicationTimeout.isPresent()) {
            timeoutMillis = assuredReplicationTimeout.getValue(TimeUnit.MILLISECONDS);
        }
        final AssuredReplicationRequestControl c = new AssuredReplicationRequestControl(true, localLevel, localLevel, remoteLevel, remoteLevel, timeoutMillis, false);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (hardDelete.isPresent() && (!clientSideSubtreeDelete.isPresent())) {
        deleteControls.add(new HardDeleteRequestControl(true));
    }
    if (replicationRepair.isPresent()) {
        final ReplicationRepairRequestControl c = new ReplicationRepairRequestControl();
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (softDelete.isPresent()) {
        deleteControls.add(new SoftDeleteRequestControl(true, true));
    }
    if (serverSideSubtreeDelete.isPresent()) {
        deleteControls.add(new SubtreeDeleteRequestControl());
    }
    if (assertionFilter.isPresent()) {
        final AssertionRequestControl c = new AssertionRequestControl(assertionFilter.getValue(), true);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (operationPurpose.isPresent()) {
        final OperationPurposeRequestControl c = new OperationPurposeRequestControl(false, "ldapmodify", Version.NUMERIC_VERSION_STRING, LDAPModify.class.getName() + ".createRequestControls", operationPurpose.getValue());
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (manageDsaIT.isPresent()) {
        final ManageDsaITRequestControl c = new ManageDsaITRequestControl(true);
        addControls.add(c);
        if (!clientSideSubtreeDelete.isPresent()) {
            deleteControls.add(c);
        }
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (passwordUpdateBehavior.isPresent()) {
        final PasswordUpdateBehaviorRequestControl c = createPasswordUpdateBehaviorRequestControl(passwordUpdateBehavior.getIdentifierString(), passwordUpdateBehavior.getValues());
        addControls.add(c);
        modifyControls.add(c);
    }
    if (preReadAttribute.isPresent()) {
        final ArrayList<String> attrList = new ArrayList<>(10);
        for (final String value : preReadAttribute.getValues()) {
            final StringTokenizer tokenizer = new StringTokenizer(value, ", ");
            while (tokenizer.hasMoreTokens()) {
                attrList.add(tokenizer.nextToken());
            }
        }
        final String[] attrArray = attrList.toArray(StaticUtils.NO_STRINGS);
        final PreReadRequestControl c = new PreReadRequestControl(attrArray);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (postReadAttribute.isPresent()) {
        final ArrayList<String> attrList = new ArrayList<>(10);
        for (final String value : postReadAttribute.getValues()) {
            final StringTokenizer tokenizer = new StringTokenizer(value, ", ");
            while (tokenizer.hasMoreTokens()) {
                attrList.add(tokenizer.nextToken());
            }
        }
        final String[] attrArray = attrList.toArray(StaticUtils.NO_STRINGS);
        final PostReadRequestControl c = new PostReadRequestControl(attrArray);
        addControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (proxyAs.isPresent() && (!useTransaction.isPresent()) && (!multiUpdateErrorBehavior.isPresent())) {
        final ProxiedAuthorizationV2RequestControl c = new ProxiedAuthorizationV2RequestControl(proxyAs.getValue());
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
        searchControls.add(c);
    }
    if (proxyV1As.isPresent() && (!useTransaction.isPresent()) && (!multiUpdateErrorBehavior.isPresent())) {
        final ProxiedAuthorizationV1RequestControl c = new ProxiedAuthorizationV1RequestControl(proxyV1As.getValue());
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
        searchControls.add(c);
    }
    if (uniquenessAttribute.isPresent() || uniquenessFilter.isPresent()) {
        final UniquenessRequestControlProperties uniquenessProperties;
        if (uniquenessAttribute.isPresent()) {
            uniquenessProperties = new UniquenessRequestControlProperties(uniquenessAttribute.getValues());
            if (uniquenessFilter.isPresent()) {
                uniquenessProperties.setFilter(uniquenessFilter.getValue());
            }
        } else {
            uniquenessProperties = new UniquenessRequestControlProperties(uniquenessFilter.getValue());
        }
        if (uniquenessBaseDN.isPresent()) {
            uniquenessProperties.setBaseDN(uniquenessBaseDN.getStringValue());
        }
        if (uniquenessMultipleAttributeBehavior.isPresent()) {
            final String value = uniquenessMultipleAttributeBehavior.getValue().toLowerCase();
            switch(value) {
                case "unique-within-each-attribute":
                    uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_WITHIN_EACH_ATTRIBUTE);
                    break;
                case "unique-across-all-attributes-including-in-same-entry":
                    uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_ACROSS_ALL_ATTRIBUTES_INCLUDING_IN_SAME_ENTRY);
                    break;
                case "unique-across-all-attributes-except-in-same-entry":
                    uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_ACROSS_ALL_ATTRIBUTES_EXCEPT_IN_SAME_ENTRY);
                    break;
                case "unique-in-combination":
                    uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_IN_COMBINATION);
                    break;
            }
        }
        if (uniquenessPreCommitValidationLevel.isPresent()) {
            final String value = uniquenessPreCommitValidationLevel.getValue().toLowerCase();
            switch(value) {
                case "none":
                    uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.NONE);
                    break;
                case "all-subtree-views":
                    uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.ALL_SUBTREE_VIEWS);
                    break;
                case "all-backend-sets":
                    uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.ALL_BACKEND_SETS);
                    break;
                case "all-available-backend-servers":
                    uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.ALL_AVAILABLE_BACKEND_SERVERS);
                    break;
            }
        }
        if (uniquenessPostCommitValidationLevel.isPresent()) {
            final String value = uniquenessPostCommitValidationLevel.getValue().toLowerCase();
            switch(value) {
                case "none":
                    uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.NONE);
                    break;
                case "all-subtree-views":
                    uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.ALL_SUBTREE_VIEWS);
                    break;
                case "all-backend-sets":
                    uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.ALL_BACKEND_SETS);
                    break;
                case "all-available-backend-servers":
                    uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.ALL_AVAILABLE_BACKEND_SERVERS);
                    break;
            }
        }
        final UniquenessRequestControl c = new UniquenessRequestControl(true, null, uniquenessProperties);
        addControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
}
Also used : RouteToServerRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.RouteToServerRequestControl) UniquenessRequestControlProperties(com.unboundid.ldap.sdk.unboundidds.controls.UniquenessRequestControlProperties) AssuredReplicationRemoteLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRemoteLevel) AssuredReplicationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl) ArrayList(java.util.ArrayList) ProxiedAuthorizationV2RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV2RequestControl) ASN1OctetString(com.unboundid.asn1.ASN1OctetString) PreReadRequestControl(com.unboundid.ldap.sdk.controls.PreReadRequestControl) PermissiveModifyRequestControl(com.unboundid.ldap.sdk.controls.PermissiveModifyRequestControl) NameWithEntryUUIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NameWithEntryUUIDRequestControl) AssertionRequestControl(com.unboundid.ldap.sdk.controls.AssertionRequestControl) HardDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.HardDeleteRequestControl) ReplicationRepairRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.ReplicationRepairRequestControl) IgnoreNoUserModificationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl) GetServerIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetServerIDRequestControl) ManageDsaITRequestControl(com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl) SuppressReferentialIntegrityUpdatesRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SuppressReferentialIntegrityUpdatesRequestControl) NoOpRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl) SoftDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SoftDeleteRequestControl) SuppressType(com.unboundid.ldap.sdk.unboundidds.controls.SuppressType) SuppressOperationalAttributeUpdateRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SuppressOperationalAttributeUpdateRequestControl) OperationPurposeRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl) ProxiedAuthorizationV1RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV1RequestControl) StringTokenizer(java.util.StringTokenizer) PasswordPolicyRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordPolicyRequestControl) GeneratePasswordRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GeneratePasswordRequestControl) GetBackendSetIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.GetBackendSetIDRequestControl) AssuredReplicationLocalLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationLocalLevel) PasswordUpdateBehaviorRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordUpdateBehaviorRequestControl) PostReadRequestControl(com.unboundid.ldap.sdk.controls.PostReadRequestControl) SubtreeDeleteRequestControl(com.unboundid.ldap.sdk.controls.SubtreeDeleteRequestControl) UniquenessRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.UniquenessRequestControl)

Aggregations

NoOpRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl)4 ASN1OctetString (com.unboundid.asn1.ASN1OctetString)3 Control (com.unboundid.ldap.sdk.Control)3 AssuredReplicationLocalLevel (com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationLocalLevel)3 AssuredReplicationRemoteLevel (com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRemoteLevel)3 AssuredReplicationRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl)3 OperationPurposeRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl)3 NotNull (com.unboundid.util.NotNull)3 ArrayList (java.util.ArrayList)3 AssertionRequestControl (com.unboundid.ldap.sdk.controls.AssertionRequestControl)2 AuthorizationIdentityRequestControl (com.unboundid.ldap.sdk.controls.AuthorizationIdentityRequestControl)2 ManageDsaITRequestControl (com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl)2 PreReadRequestControl (com.unboundid.ldap.sdk.controls.PreReadRequestControl)2 ProxiedAuthorizationV1RequestControl (com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV1RequestControl)2 ProxiedAuthorizationV2RequestControl (com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV2RequestControl)2 SubtreeDeleteRequestControl (com.unboundid.ldap.sdk.controls.SubtreeDeleteRequestControl)2 GetAuthorizationEntryRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.GetAuthorizationEntryRequestControl)2 GetBackendSetIDRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.GetBackendSetIDRequestControl)2 GetServerIDRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.GetServerIDRequestControl)2 GetUserResourceLimitsRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.GetUserResourceLimitsRequestControl)2