On 23 mai 2013, at 19:26, Michael Ströder <michael(a)stroeder.com> wrote:
pa(a)marcelot.net wrote:
> It looks like it's not possible to modify the 'objectClass' attribute of
> configuration entries.
>
> I have some code generating entries for OpenLDAP configuration from a UI utility
> and updating existing configuration entries in DIT.
> This code generates entries with the 'objectClass' attribute containing the
full
> object class hierarchy (all the way to 'top') and not only the highest
> structural object class (which is the case of default OpenLDAP configuration).
>
> When updating the configuration in the DIT, the code then tries to complete the
> 'objectClass' attribute with the full list of object classes.
> That operations ends with "error code 53- UnwillingToPerform".
>
>
> Here's an example on the "cn=config" entry:
> #!RESULT ERROR
> #!CONNECTION ldap://10.211.55.13:389
> #!DATE 2013-05-22T14:56:03.039
> #!ERROR [LDAP: error code 53 - UnwillingToPerform]
> dn: cn=config
> changetype: modify
> replace: objectClass
> objectClass: olcConfig
> objectClass: olcGlobal
> objectClass: top
It's not necessarily a bug.
I think LDAP clients should not act too "smart" and therefore should not
automagically add object classes from the structural object class chain if
they are not already present. You will run into issues with various LDAP
server implementations - at least according to experiences I made with
conducting interop testing with web2ldap and several server implementations.
Right, it's just that this kind of modifications is perfectly valid.
I mean, I'm not breaking any LDAP rule or concept and if I add the same entry (as a
new entry) with the full object class hierarchy, the server is allowing it without a
hitch.
I still think it should be possible to modify the objectclass but I'll take into
account that the implementation does not allow it (yet? ;-)).
A schema-aware client could auto-complete structural object class
chain if
adding a new entry though. But again: Don't be too smart.
Exactly, that's why I updated my code to do.
Let's be dumb, sometimes...
May I ask which UI utility you're using?
Sure, that's an internal application we wrote to edit some parts of the OpenLDAP
configuration.
Ciao, Michael.
Regards,
Pierre-Arnaud