Search in sources :

Example 1 with IgnoreNoUserModificationRequestControl

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

the class LDIFAddChangeRecordTestCase method testConstructor1.

/**
 * Tests the first constructor.
 *
 * @throws  Exception  If an unexpected problem occurs.
 */
@Test()
public void testConstructor1() throws Exception {
    Attribute[] attrs = { new Attribute("objectClass", "top", "domain"), new Attribute("dc", "example") };
    LDIFAddChangeRecord r = new LDIFAddChangeRecord("dc=example,dc=com", attrs);
    assertNotNull(r.getDN());
    assertEquals(r.getDN(), "dc=example,dc=com");
    assertEquals(r.getParsedDN(), new DN("dc=example,dc=com"));
    assertNotNull(r.getAttributes());
    assertEquals(r.getAttributes().length, 2);
    AddRequest addRequest = r.toAddRequest();
    assertNotNull(addRequest);
    assertEquals(addRequest.getDN(), "dc=example,dc=com");
    assertEquals(r.getChangeType(), ChangeType.ADD);
    String[] ldifLines = r.toLDIF();
    assertNotNull(ldifLines);
    assertEquals(ldifLines.length, 5);
    r.hashCode();
    ByteStringBuffer byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer);
    assertNotNull(byteBuffer.toString());
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer, 10);
    assertNotNull(byteBuffer.toString());
    StringBuilder stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer);
    assertNotNull(r.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer, 10);
    assertNotNull(r.toString());
    assertNotNull(r.toLDIFString());
    assertNotNull(r.toLDIFString(10));
    assertNotNull(r.toString());
    assertNotNull(r.getEntryToAdd());
    assertEquals(r.getEntryToAdd(), new Entry(r.getDN(), r.getAttributes()));
    assertNotNull(r.getControls());
    assertTrue(r.getControls().isEmpty());
    r = r.duplicate();
    assertNotNull(r.getDN());
    assertEquals(r.getDN(), "dc=example,dc=com");
    assertEquals(r.getParsedDN(), new DN("dc=example,dc=com"));
    assertNotNull(r.getAttributes());
    assertEquals(r.getAttributes().length, 2);
    addRequest = r.toAddRequest();
    assertNotNull(addRequest);
    assertEquals(addRequest.getDN(), "dc=example,dc=com");
    assertEquals(r.getChangeType(), ChangeType.ADD);
    ldifLines = r.toLDIF();
    assertNotNull(ldifLines);
    assertEquals(ldifLines.length, 5);
    r.hashCode();
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer);
    assertNotNull(byteBuffer.toString());
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer, 10);
    assertNotNull(byteBuffer.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer);
    assertNotNull(r.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer, 10);
    assertNotNull(r.toString());
    assertNotNull(r.toLDIFString());
    assertNotNull(r.toLDIFString(10));
    assertNotNull(r.toString());
    assertNotNull(r.getEntryToAdd());
    assertEquals(r.getEntryToAdd(), new Entry(r.getDN(), r.getAttributes()));
    assertNotNull(r.getControls());
    assertTrue(r.getControls().isEmpty());
    r = r.duplicate((Control[]) null);
    assertNotNull(r.getDN());
    assertEquals(r.getDN(), "dc=example,dc=com");
    assertEquals(r.getParsedDN(), new DN("dc=example,dc=com"));
    assertNotNull(r.getAttributes());
    assertEquals(r.getAttributes().length, 2);
    addRequest = r.toAddRequest();
    assertNotNull(addRequest);
    assertEquals(addRequest.getDN(), "dc=example,dc=com");
    assertEquals(r.getChangeType(), ChangeType.ADD);
    ldifLines = r.toLDIF();
    assertNotNull(ldifLines);
    assertEquals(ldifLines.length, 5);
    r.hashCode();
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer);
    assertNotNull(byteBuffer.toString());
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer, 10);
    assertNotNull(byteBuffer.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer);
    assertNotNull(r.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer, 10);
    assertNotNull(r.toString());
    assertNotNull(r.toLDIFString());
    assertNotNull(r.toLDIFString(10));
    assertNotNull(r.toString());
    assertNotNull(r.getEntryToAdd());
    assertEquals(r.getEntryToAdd(), new Entry(r.getDN(), r.getAttributes()));
    assertNotNull(r.getControls());
    assertTrue(r.getControls().isEmpty());
    r = r.duplicate(new Control[0]);
    assertNotNull(r.getDN());
    assertEquals(r.getDN(), "dc=example,dc=com");
    assertEquals(r.getParsedDN(), new DN("dc=example,dc=com"));
    assertNotNull(r.getAttributes());
    assertEquals(r.getAttributes().length, 2);
    addRequest = r.toAddRequest();
    assertNotNull(addRequest);
    assertEquals(addRequest.getDN(), "dc=example,dc=com");
    assertEquals(r.getChangeType(), ChangeType.ADD);
    ldifLines = r.toLDIF();
    assertNotNull(ldifLines);
    assertEquals(ldifLines.length, 5);
    r.hashCode();
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer);
    assertNotNull(byteBuffer.toString());
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer, 10);
    assertNotNull(byteBuffer.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer);
    assertNotNull(r.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer, 10);
    assertNotNull(r.toString());
    assertNotNull(r.toLDIFString());
    assertNotNull(r.toLDIFString(10));
    assertNotNull(r.toString());
    assertNotNull(r.getEntryToAdd());
    assertEquals(r.getEntryToAdd(), new Entry(r.getDN(), r.getAttributes()));
    assertNotNull(r.getControls());
    assertTrue(r.getControls().isEmpty());
    r = r.duplicate(new ManageDsaITRequestControl(false));
    assertNotNull(r.getDN());
    assertEquals(r.getDN(), "dc=example,dc=com");
    assertEquals(r.getParsedDN(), new DN("dc=example,dc=com"));
    assertNotNull(r.getAttributes());
    assertEquals(r.getAttributes().length, 2);
    addRequest = r.toAddRequest();
    assertNotNull(addRequest);
    assertEquals(addRequest.getDN(), "dc=example,dc=com");
    assertEquals(r.getChangeType(), ChangeType.ADD);
    ldifLines = r.toLDIF();
    assertNotNull(ldifLines);
    assertEquals(ldifLines.length, 6);
    r.hashCode();
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer);
    assertNotNull(byteBuffer.toString());
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer, 10);
    assertNotNull(byteBuffer.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer);
    assertNotNull(r.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer, 10);
    assertNotNull(r.toString());
    assertNotNull(r.toLDIFString());
    assertNotNull(r.toLDIFString(10));
    assertNotNull(r.toString());
    assertNotNull(r.getEntryToAdd());
    assertEquals(r.getEntryToAdd(), new Entry(r.getDN(), r.getAttributes()));
    assertNotNull(r.getControls());
    assertFalse(r.getControls().isEmpty());
    assertEquals(r.getControls(), Collections.singletonList(new ManageDsaITRequestControl(false)));
    r = r.duplicate(new ManageDsaITRequestControl(false), new IgnoreNoUserModificationRequestControl(false));
    assertNotNull(r.getDN());
    assertEquals(r.getDN(), "dc=example,dc=com");
    assertEquals(r.getParsedDN(), new DN("dc=example,dc=com"));
    assertNotNull(r.getAttributes());
    assertEquals(r.getAttributes().length, 2);
    addRequest = r.toAddRequest();
    assertNotNull(addRequest);
    assertEquals(addRequest.getDN(), "dc=example,dc=com");
    assertEquals(r.getChangeType(), ChangeType.ADD);
    ldifLines = r.toLDIF();
    assertNotNull(ldifLines);
    assertEquals(ldifLines.length, 7);
    r.hashCode();
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer);
    assertNotNull(byteBuffer.toString());
    byteBuffer = new ByteStringBuffer();
    r.toLDIF(byteBuffer, 10);
    assertNotNull(byteBuffer.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer);
    assertNotNull(r.toString());
    stringBuffer = new StringBuilder();
    r.toLDIFString(stringBuffer, 10);
    assertNotNull(r.toString());
    assertNotNull(r.toLDIFString());
    assertNotNull(r.toLDIFString(10));
    assertNotNull(r.toString());
    assertNotNull(r.getEntryToAdd());
    assertEquals(r.getEntryToAdd(), new Entry(r.getDN(), r.getAttributes()));
    assertNotNull(r.getControls());
    assertFalse(r.getControls().isEmpty());
    assertEquals(r.getControls(), Arrays.asList(new ManageDsaITRequestControl(false), new IgnoreNoUserModificationRequestControl(false)));
}
Also used : Attribute(com.unboundid.ldap.sdk.Attribute) DN(com.unboundid.ldap.sdk.DN) AddRequest(com.unboundid.ldap.sdk.AddRequest) Entry(com.unboundid.ldap.sdk.Entry) ManageDsaITRequestControl(com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl) Control(com.unboundid.ldap.sdk.Control) IgnoreNoUserModificationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl) IgnoreNoUserModificationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl) ByteStringBuffer(com.unboundid.util.ByteStringBuffer) ManageDsaITRequestControl(com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl) Test(org.testng.annotations.Test)

Example 2 with IgnoreNoUserModificationRequestControl

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

the class ParallelUpdate method getOperationControls.

/**
 * Updates the provided lists with the appropriate controls to include in
 * each type of request.
 *
 * @param  addControls       The list that should be updated with controls to
 *                           include in add requests.  It must not be
 *                           {@code null} and must be updatable.
 * @param  deleteControls    The list that should be updated with controls to
 *                           include in delete requests.  It must not be
 *                           {@code null} and must be updatable.
 * @param  modifyControls    The list that should be updated with controls to
 *                           include in modify requests.  It must not be
 *                           {@code null} and must be updatable.
 * @param  modifyDNControls  The list that should be updated with controls to
 *                           include in modify DN requests.  It must not be
 *                           {@code null} and must be updatable.
 *
 * @throws  LDAPException  If a problem is encountered while creating any of
 *                         the controls.
 */
private void getOperationControls(@NotNull final List<Control> addControls, @NotNull final List<Control> deleteControls, @NotNull final List<Control> modifyControls, @NotNull final List<Control> modifyDNControls) throws LDAPException {
    if (addControlArg.isPresent()) {
        addControls.addAll(addControlArg.getValues());
    }
    if (deleteControlArg.isPresent()) {
        deleteControls.addAll(deleteControlArg.getValues());
    }
    if (modifyControlArg.isPresent()) {
        modifyControls.addAll(modifyControlArg.getValues());
    }
    if (modifyDNControlArg.isPresent()) {
        modifyDNControls.addAll(modifyDNControlArg.getValues());
    }
    if (proxyAsArg.isPresent()) {
        final ProxiedAuthorizationV2RequestControl c = new ProxiedAuthorizationV2RequestControl(proxyAsArg.getValue());
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    } else if (proxyV1AsArg.isPresent()) {
        final ProxiedAuthorizationV1RequestControl c = new ProxiedAuthorizationV1RequestControl(proxyV1AsArg.getValue());
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (usePermissiveModifyArg.isPresent()) {
        modifyControls.add(new PermissiveModifyRequestControl(true));
    }
    if (ignoreNoUserModificationArg.isPresent()) {
        final IgnoreNoUserModificationRequestControl c = new IgnoreNoUserModificationRequestControl();
        addControls.add(c);
        modifyControls.add(c);
    }
    if (useManageDsaITArg.isPresent()) {
        final ManageDsaITRequestControl c = new ManageDsaITRequestControl(true);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (nameWithEntryUUIDArg.isPresent()) {
        addControls.add(new NameWithEntryUUIDRequestControl(true));
    }
    if (softDeleteArg.isPresent()) {
        deleteControls.add(new SoftDeleteRequestControl(true, true));
    } else if (hardDeleteArg.isPresent()) {
        deleteControls.add(new HardDeleteRequestControl(true));
    }
    if (operationPurposeArg.isPresent()) {
        final OperationPurposeRequestControl c = new OperationPurposeRequestControl(false, "parallel-update", Version.NUMERIC_VERSION_STRING, ParallelUpdate.class.getName() + ".getOperationControls", operationPurposeArg.getValue());
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (replicationRepairArg.isPresent()) {
        final ReplicationRepairRequestControl c = new ReplicationRepairRequestControl();
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (suppressReferentialIntegrityUpdatesArg.isPresent()) {
        final SuppressReferentialIntegrityUpdatesRequestControl c = new SuppressReferentialIntegrityUpdatesRequestControl(true);
        deleteControls.add(c);
        modifyDNControls.add(c);
    }
    if (useAssuredReplicationArg.isPresent()) {
        final AssuredReplicationLocalLevel localLevel;
        if (assuredReplicationLocalLevelArg.isPresent()) {
            final String localLevelStr = StaticUtils.toLowerCase(assuredReplicationLocalLevelArg.getValue());
            switch(localLevelStr) {
                case ASSURED_REPLICATION_LOCAL_LEVEL_NONE:
                    localLevel = AssuredReplicationLocalLevel.NONE;
                    break;
                case ASSURED_REPLICATION_LOCAL_LEVEL_RECEIVED_ANY_SERVER:
                    localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
                    break;
                case ASSURED_REPLICATION_LOCAL_LEVEL_PROCESSED_ALL_SERVERS:
                    localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
                    break;
                default:
                    // This should never happen.
                    localLevel = null;
                    break;
            }
        } else {
            localLevel = null;
        }
        final AssuredReplicationRemoteLevel remoteLevel;
        if (assuredReplicationRemoteLevelArg.isPresent()) {
            final String remoteLevelStr = StaticUtils.toLowerCase(assuredReplicationRemoteLevelArg.getValue());
            switch(remoteLevelStr) {
                case ASSURED_REPLICATION_REMOTE_LEVEL_NONE:
                    remoteLevel = AssuredReplicationRemoteLevel.NONE;
                    break;
                case ASSURED_REPLICATION_REMOTE_LEVEL_RECEIVED_ANY_REMOTE_LOCATION:
                    remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
                    break;
                case ASSURED_REPLICATION_REMOTE_LEVEL_RECEIVED_ALL_REMOTE_LOCATIONS:
                    remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
                    break;
                case ASSURED_REPLICATION_REMOTE_LEVEL_PROCESSED_ALL_REMOTE_SERVERS:
                    remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
                    break;
                default:
                    // This should never happen.
                    remoteLevel = null;
                    break;
            }
        } else {
            remoteLevel = null;
        }
        final Long timeoutMillis;
        if (assuredReplicationTimeoutArg.isPresent()) {
            timeoutMillis = assuredReplicationTimeoutArg.getValue(TimeUnit.MILLISECONDS);
        } else {
            timeoutMillis = null;
        }
        final AssuredReplicationRequestControl c = new AssuredReplicationRequestControl(true, localLevel, null, remoteLevel, null, timeoutMillis, false);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
    if (passwordUpdateBehaviorArg.isPresent()) {
        final PasswordUpdateBehaviorRequestControlProperties properties = new PasswordUpdateBehaviorRequestControlProperties();
        for (final String argValue : passwordUpdateBehaviorArg.getValues()) {
            final int equalPos = argValue.indexOf('=');
            if (equalPos < 0) {
                throw new LDAPException(ResultCode.PARAM_ERROR, ERR_PARALLEL_UPDATE_MALFORMED_PW_UPDATE_VALUE.get(argValue, passwordUpdateBehaviorArg.getIdentifierString()));
            }
            final String propertyName = argValue.substring(0, equalPos).trim();
            final String lowerName = StaticUtils.toLowerCase(propertyName);
            switch(lowerName) {
                case PW_UPDATE_BEHAVIOR_NAME_IS_SELF_CHANGE:
                    properties.setIsSelfChange(getBooleanPWUpdateBehaviorValue(argValue));
                    break;
                case PW_UPDATE_BEHAVIOR_NAME_ALLOW_PRE_ENCODED_PW:
                    properties.setAllowPreEncodedPassword(getBooleanPWUpdateBehaviorValue(argValue));
                    break;
                case PW_UPDATE_BEHAVIOR_NAME_SKIP_PW_VALIDATION:
                    properties.setSkipPasswordValidation(getBooleanPWUpdateBehaviorValue(argValue));
                    break;
                case PW_UPDATE_BEHAVIOR_NAME_IGNORE_PW_HISTORY:
                    properties.setIgnorePasswordHistory(getBooleanPWUpdateBehaviorValue(argValue));
                    break;
                case PW_UPDATE_BEHAVIOR_NAME_IGNORE_MIN_PW_AGE:
                    properties.setIgnoreMinimumPasswordAge(getBooleanPWUpdateBehaviorValue(argValue));
                    break;
                case PW_UPDATE_BEHAVIOR_NAME_MUST_CHANGE_PW:
                    properties.setMustChangePassword(getBooleanPWUpdateBehaviorValue(argValue));
                    break;
                case PW_UPDATE_BEHAVIOR_NAME_PW_STORAGE_SCHEME:
                    final String propertyValue = argValue.substring(equalPos + 1).trim();
                    properties.setPasswordStorageScheme(propertyValue);
                    break;
                default:
                    throw new LDAPException(ResultCode.PARAM_ERROR, ERR_PARALLEL_UPDATE_UNKNOWN_PW_UPDATE_PROP.get(argValue, passwordUpdateBehaviorArg.getIdentifierString(), PW_UPDATE_BEHAVIOR_NAME_IS_SELF_CHANGE, PW_UPDATE_BEHAVIOR_NAME_ALLOW_PRE_ENCODED_PW, PW_UPDATE_BEHAVIOR_NAME_SKIP_PW_VALIDATION, PW_UPDATE_BEHAVIOR_NAME_IGNORE_PW_HISTORY, PW_UPDATE_BEHAVIOR_NAME_IGNORE_MIN_PW_AGE, PW_UPDATE_BEHAVIOR_NAME_PW_STORAGE_SCHEME, PW_UPDATE_BEHAVIOR_NAME_MUST_CHANGE_PW));
            }
        }
        final PasswordUpdateBehaviorRequestControl c = new PasswordUpdateBehaviorRequestControl(properties, true);
        addControls.add(c);
        modifyControls.add(c);
    }
    if (suppressOperationalAttributeUpdatesArg.isPresent()) {
        final EnumSet<SuppressType> suppressTypes = EnumSet.noneOf(SuppressType.class);
        for (final String s : suppressOperationalAttributeUpdatesArg.getValues()) {
            if (s.equalsIgnoreCase(SUPPRESS_OP_ATTR_LAST_ACCESS_TIME)) {
                suppressTypes.add(SuppressType.LAST_ACCESS_TIME);
            } else if (s.equalsIgnoreCase(SUPPRESS_OP_ATTR_LAST_LOGIN_TIME)) {
                suppressTypes.add(SuppressType.LAST_LOGIN_TIME);
            } else if (s.equalsIgnoreCase(SUPPRESS_OP_ATTR_LAST_LOGIN_IP)) {
                suppressTypes.add(SuppressType.LAST_LOGIN_IP);
            }
        }
        final SuppressOperationalAttributeUpdateRequestControl c = new SuppressOperationalAttributeUpdateRequestControl(true, suppressTypes);
        addControls.add(c);
        deleteControls.add(c);
        modifyControls.add(c);
        modifyDNControls.add(c);
    }
}
Also used : SuppressReferentialIntegrityUpdatesRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SuppressReferentialIntegrityUpdatesRequestControl) AssuredReplicationRemoteLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRemoteLevel) SoftDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SoftDeleteRequestControl) AssuredReplicationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl) PasswordUpdateBehaviorRequestControlProperties(com.unboundid.ldap.sdk.unboundidds.controls.PasswordUpdateBehaviorRequestControlProperties) ProxiedAuthorizationV2RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV2RequestControl) SuppressType(com.unboundid.ldap.sdk.unboundidds.controls.SuppressType) SuppressOperationalAttributeUpdateRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.SuppressOperationalAttributeUpdateRequestControl) PermissiveModifyRequestControl(com.unboundid.ldap.sdk.controls.PermissiveModifyRequestControl) OperationPurposeRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl) ProxiedAuthorizationV1RequestControl(com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV1RequestControl) NameWithEntryUUIDRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.NameWithEntryUUIDRequestControl) LDAPException(com.unboundid.ldap.sdk.LDAPException) HardDeleteRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.HardDeleteRequestControl) ReplicationRepairRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.ReplicationRepairRequestControl) IgnoreNoUserModificationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl) AtomicLong(java.util.concurrent.atomic.AtomicLong) AssuredReplicationLocalLevel(com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationLocalLevel) PasswordUpdateBehaviorRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.PasswordUpdateBehaviorRequestControl) ManageDsaITRequestControl(com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl)

Example 3 with IgnoreNoUserModificationRequestControl

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

the class InMemoryDirectoryServerTestCase method testNoUserModification.

/**
 * Tests to ensure that write attempts will be rejected if they target
 * attributes marked with NO-USER-MODIFICATION.
 *
 * @throws  Exception  If an unexpected problem occurs.
 */
@Test()
public void testNoUserModification() throws Exception {
    final InMemoryDirectoryServer ds = getTestDS(true, true);
    final LDAPConnection conn = ds.getConnection();
    // Ensure that an add is properly rejected.
    try {
        conn.add("dn: ou=test,dc=example,dc=com", "objectClass: top", "objectClass: organizationalUnit", "ou: test", "entryUUID: " + CryptoHelper.getRandomUUID());
        fail("Expected an exception when trying to add an entry with a " + "NO-USER-MODIFICATION attribute.");
    } catch (final LDAPException le) {
        assertEquals(le.getResultCode(), ResultCode.CONSTRAINT_VIOLATION);
    }
    // Ensure that the add is allowed if the ignore NO-USER-MODIFICATION request
    // control is included in the request.
    final AddRequest addRequest = new AddRequest("dn: ou=test,dc=example,dc=com", "objectClass: top", "objectClass: organizationalUnit", "ou: test", "entryUUID: " + CryptoHelper.getRandomUUID());
    addRequest.addControl(new IgnoreNoUserModificationRequestControl());
    assertResultCodeEquals(conn, addRequest, ResultCode.SUCCESS);
    assertResultCodeEquals(conn, new DeleteRequest("ou=test,dc=example,dc=com"), ResultCode.SUCCESS);
    // Ensure that a modification is properly rejected.
    try {
        conn.modify("dn: ou=People,dc=example,dc=com", "changetype: modify", "replace: entryUUID", "entryUUID: " + CryptoHelper.getRandomUUID());
        fail("Expected an exception when trying to modify an attribute with " + "NO-USER-MODIFICATION.");
    } catch (final LDAPException le) {
        assertEquals(le.getResultCode(), ResultCode.CONSTRAINT_VIOLATION);
    }
    // Ensure that modify requests can't have the ignore NO-USER-MODIFICATION
    // request control, whether it is critical or non-critical.
    final ModifyRequest modifyRequest = new ModifyRequest("dn: ou=People,dc=example,dc=com", "changetype: modify", "replace: entryUUID", "entryUUID: " + CryptoHelper.getRandomUUID());
    modifyRequest.addControl(new Control(IgnoreNoUserModificationRequestControl.IGNORE_NO_USER_MODIFICATION_REQUEST_OID, true));
    assertResultCodeEquals(conn, modifyRequest, ResultCode.UNAVAILABLE_CRITICAL_EXTENSION);
    modifyRequest.setControls(new Control(IgnoreNoUserModificationRequestControl.IGNORE_NO_USER_MODIFICATION_REQUEST_OID, false));
    assertResultCodeEquals(conn, modifyRequest, ResultCode.CONSTRAINT_VIOLATION);
    // It should be possible to rename an entry to use its existing entryUUID.
    final Entry userEntry = ds.getEntry("uid=test.user,ou=People,dc=example,dc=com", "*", "+");
    assertNotNull(userEntry);
    final String entryUUID = userEntry.getAttributeValue("entryUUID");
    assertNotNull(entryUUID);
    final LDAPResult result = conn.modifyDN("uid=test.user,ou=People,dc=example,dc=com", "entryUUID=" + entryUUID, false);
    assertEquals(result.getResultCode(), ResultCode.SUCCESS);
    // modify DN will be rejected if it would add a new value.
    try {
        conn.modifyDN("entryUUID=" + entryUUID + ",ou=People,dc=example,dc=com", "entryUUID=" + CryptoHelper.getRandomUUID(), true);
        fail("Expected an exception when trying to insert a new " + "NO-USER-MODIFICATION attribute by a modify DN.");
    } catch (final LDAPException le) {
        assertEquals(le.getResultCode(), ResultCode.CONSTRAINT_VIOLATION, le.toString());
    }
    // modify DN will be rejected if it would remove an existing value.
    try {
        conn.modifyDN("entryUUID=" + entryUUID + ",ou=People,dc=example,dc=com", "uid=test.user", true);
        fail("Expected an exception when trying to remove a " + "NO-USER-MODIFICATION attribute by a modify DN.");
    } catch (final LDAPException le) {
        assertEquals(le.getResultCode(), ResultCode.CONSTRAINT_VIOLATION);
    }
    final Control[] unbindControls = { new Control("1.2.3.4", false), new Control("1.2.3.5", false, new ASN1OctetString("foo")) };
    conn.close(unbindControls);
}
Also used : ASN1OctetString(com.unboundid.asn1.ASN1OctetString) LDAPResult(com.unboundid.ldap.sdk.LDAPResult) LDAPConnection(com.unboundid.ldap.sdk.LDAPConnection) ModifyRequest(com.unboundid.ldap.sdk.ModifyRequest) ASN1OctetString(com.unboundid.asn1.ASN1OctetString) AddRequest(com.unboundid.ldap.sdk.AddRequest) AuthorizationIdentityRequestControl(com.unboundid.ldap.sdk.controls.AuthorizationIdentityRequestControl) Control(com.unboundid.ldap.sdk.Control) IgnoreNoUserModificationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl) AuthorizationIdentityResponseControl(com.unboundid.ldap.sdk.controls.AuthorizationIdentityResponseControl) Entry(com.unboundid.ldap.sdk.Entry) SearchResultEntry(com.unboundid.ldap.sdk.SearchResultEntry) LDAPException(com.unboundid.ldap.sdk.LDAPException) IgnoreNoUserModificationRequestControl(com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl) DeleteRequest(com.unboundid.ldap.sdk.DeleteRequest) Test(org.testng.annotations.Test)

Example 4 with IgnoreNoUserModificationRequestControl

use of com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl 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

IgnoreNoUserModificationRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.IgnoreNoUserModificationRequestControl)4 ManageDsaITRequestControl (com.unboundid.ldap.sdk.controls.ManageDsaITRequestControl)3 ASN1OctetString (com.unboundid.asn1.ASN1OctetString)2 AddRequest (com.unboundid.ldap.sdk.AddRequest)2 Control (com.unboundid.ldap.sdk.Control)2 Entry (com.unboundid.ldap.sdk.Entry)2 LDAPException (com.unboundid.ldap.sdk.LDAPException)2 PermissiveModifyRequestControl (com.unboundid.ldap.sdk.controls.PermissiveModifyRequestControl)2 ProxiedAuthorizationV1RequestControl (com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV1RequestControl)2 ProxiedAuthorizationV2RequestControl (com.unboundid.ldap.sdk.controls.ProxiedAuthorizationV2RequestControl)2 AssuredReplicationLocalLevel (com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationLocalLevel)2 AssuredReplicationRemoteLevel (com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRemoteLevel)2 AssuredReplicationRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.AssuredReplicationRequestControl)2 HardDeleteRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.HardDeleteRequestControl)2 NameWithEntryUUIDRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.NameWithEntryUUIDRequestControl)2 OperationPurposeRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.OperationPurposeRequestControl)2 PasswordUpdateBehaviorRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.PasswordUpdateBehaviorRequestControl)2 ReplicationRepairRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.ReplicationRepairRequestControl)2 SoftDeleteRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.SoftDeleteRequestControl)2 SuppressOperationalAttributeUpdateRequestControl (com.unboundid.ldap.sdk.unboundidds.controls.SuppressOperationalAttributeUpdateRequestControl)2