Choose the target and interpret the result
03The condition belongs to a specific target entry named by the request. Different operations use different target fields. Filter evaluation has three outcomes, and only TRUE opens normal processing.
Abandon, Bind, Unbind and StartTLS are not appropriate uses of this assertion control. No response is invented for operations that normally have none.
Key idea: FALSE and Undefined both stop an applied assertion with 122; TRUE is not a success result code.
Terms
- Target
- The entry against which this request’s assertion is evaluated.
- Undefined
- The server cannot determine the Filter truth under LDAP’s matching semantics.
- ModifyDN
- LDAP’s rename or move operation.
Rules & examples
FALSE and Undefined both stop an applied assertion with 122; TRUE is not a success result code.
- For Add, Compare and ModifyDN, RFC 4528 identifies the target using the entry field. Modify uses object; Delete uses the DelRequest value; Search uses baseObject.
- The field table does not implement Add’s creation, schema or other base-operation preconditions. Do not infer an unsupported rule about a not-yet-existing entry from this naming table.
- LDAP Filter evaluation uses TRUE, FALSE and Undefined. An unrecognized attribute description is one reason evaluation can be Undefined (RFC 4511 §4.5.1.7). A missing value is not universally the same as an unknown schema attribute.
- With the assertion applied, FALSE or Undefined returns assertionFailed(122) and stops further processing. TRUE only permits the underlying operation to run normally, including its usual possible errors.
- The control is appropriate for Add, Compare, Delete, Modify, ModifyDN and Search. It is inappropriate for Abandon, Bind, Unbind and StartTLS. Do not attach it as a generic guard for every LDAP message.
The displayed mapping is of actual request field names, not a packet-size sketch. The helper’s executable update is Modify only; other operations are explained by the RFC mapping, not simulated as a complete directory implementation.
Sources
New to this? Start hereA quick picture + helpful background
Check the entry before changing it
Think of a shared directory card: a remembered value may be out of date by the time someone changes it. A conditional update asks the server to check the current card and perform the update as one action. This is an analogy for one operation, not a promise of a transaction across the whole directory.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.