Description
When I enumerate the mandatory attributes of a class I'd expected to get an
Attribute with an enumeration for the individual attributes:
Set<String> mandatory = new HashSet<String>(); Attributes attributes = schemaCtx.getAttributes("ClassDefinition/person"); Attribute attribute = attributes.get("must"); if (attribute != null) { NamingEnumeration<String> enumeration = (NamingEnumeration<String>) attribute.getAll(); for (NamingEnumeration<String> values = enumeration; values.hasMore();) { mandatory.add(values.next()); } JndiUtils.closeLogged(enumeration, LOG); }
However, the result is a single entry with the value "'sn' 'cn'". According Stefan Seelmann the LDAP classes are no longer defined correctly
In ApacheDS 1.5.5 the person object class description in cn=schema looks
like this:
( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP top STRUCTURAL MUST
( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description
) X-SCHEMA 'core' )
In ApacheDS 1.5.6 it looks like this:
( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP 'top' STRUCTURAL
MUST ( 'sn' 'cn' ) MAY ( 'userPassword' 'telephoneNumber' 'seeAlso'
'description' ) X-SCHEMA 'core' )
This is not correct according to RFC4512 and JNDI doesn't seem to be
flexible enough to parse this syntax.