In method searchForSingleAttributeValues(String, String, Object, String) of class SpringSecurityLdapTemplate, on line 168, there is this call:
Then the search(String, String, Object, String) method is called with a context mapper, which implies that returnObj must be true in SearchControls. LdapTemplate checks the returningObjFlag state, and if it is false, sets it to true. It also emits an INFO log entry about the inconsistency.
The documentation of class SearchControls states for the controls argument:
"The <code>SearchControls</code> to use in the search. If the
- returnObjFlag is not set in the <code>SearchControls</code>,
- this method will set it automatically, as this is required for
- the <code>ContextMapper</code> to work.
Setting the returningObjFlag to false is at best superfluous, at worst some behavior of the search is desired, which cannot be achieved this way.