Hi Jörg,
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.
Could you please file a Jira? Thanks for the finding.
Kind Regards,
Stefan
Jörg Schaible schrieb:
> Hi folks,
>
> porting our integration LDAP tests from ApacheDS 1.5.4 to 1.5.6 I activated
> now the code to access the LDAP schema (which is AFAICS not available since
> 1.5.5). However, the data is returned in a strange way.
>
> 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);
> }
> ========= %< =========
>
> With SunOne the mandatory set contains the two elements "cn" and "sn". With
> ApacheDS the mandatory set contains one element with "'cn' 'sn'", which is
> kinda strange ...
>
> - Jörg
>