Thanks... I have raised this issue in Jira... https://issues.apache.org/jira/browse/DIRSERVER-1368
I have also attached two files to it, (one of which is a unit test), which demonstrate this issue. -- Paul Edwards Solutions Engineer Identity Solutions Practice --------------------------------------------------------- hyro W www.hyro.com ________________________________________ From: Emmanuel Lecharny [[email protected]] On Behalf Of Emmanuel Lecharny [[email protected]] Sent: Tuesday, 19 May 2009 5:32 p.m. To: [email protected] Subject: Re: Embedded apacheds Again!!! Paul Edwards wrote: > Guys, > > Another quick query.... > Hi, sounds like there is a problem... We have to check that extending an existing class and using one of its attribute is permitted by the server. Can you create a JIRA with the informations you gave in this mail, adding the server version you are using ? What would be great is to include the portion of code you are using so that we can reproduce the problem and debug the server ! Thanks ! > I have need to modify the schema. I have everything running smoothly (see > previous posts to this group...) I have a situation where I need to extend > InetOrgPerson. I have this scenario running successfully under OpenLdap. So I > modify ou=schema in apacheDS with: > > dn: m-oid=2.16.840.1.113730.3.2.22.249, ou=attributeTypes, cn=inetorgperson, > ou=schema > m-oid: 2.16.840.1.113730.3.2.22.249 > m-substr: caseIgnoreSubstringsMatch > m-syntax: 1.3.6.1.4.1.1466.115.121.1.15 > m-equality: caseIgnoreMatch > m-singleValue: TRUE > m-name: accountStatus > m-collective: FALSE > m-obsolete: FALSE > m-usage: USER_APPLICATIONS > objectClass: metaAttributeType > objectClass: metaTop > objectClass: top > m-noUserModification: FALSE > m-description: Account Status > > dn: m-oid=2.16.840.1.113730.3.2.22, ou=objectClasses, cn=inetorgperson, > ou=schema > m-oid: 2.16.840.1.113730.3.2.22 > m-obsolete: FALSE > m-may: accountStatus > objectClass: metaObjectClass > objectClass: metaTop > objectClass: top > m-typeObjectClass: STRUCTURAL > m-name: extendPerson > m-supObjectClass: inetOrgPerson > m-description: Extended InetOrgPerson > > I can then connect to the apacheDS with third party ldap tools and see that > these changes are present. > > I then try to add: > dn: cn=pedwards,ou=People,dc=testdomain,dc=co,dc=nz > objectclass: top > objectclass: extendPerson > uid: pedwards > sn: Edwards > cn: pedwards > initials: PE > > And I get: > LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for Add Request > Attribute initials not declared in objectClasses of entry > cn=pedwards,ou=People,dc=testdomain,dc=co,dc=nz > > However if I use inetOrgPerson instead of extendPerson, the ldif goes in > fine. It seems to me that its ignoring the fact that extendPerson extends > inetOrgPerson. > > > org.apache.directory.shared.ldap.exception.LdapSchemaViolationException: > Attribute initials not declared in objectClasses of entry > cn=pedwards,ou=People,dc=testdomain,dc=co,dc=nz > at > org.apache.directory.server.core.schema.SchemaInterceptor.assertAllAttributesAllowed(SchemaInterceptor.java:1829) > at > org.apache.directory.server.core.schema.SchemaInterceptor.check(SchemaInterceptor.java:1703) > at > org.apache.directory.server.core.schema.SchemaInterceptor.add(SchemaInterceptor.java:1787) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.operational.OperationalAttributeInterceptor.add(OperationalAttributeInterceptor.java:202) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.changelog.ChangeLogInterceptor.add(ChangeLogInterceptor.java:109) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.exception.ExceptionInterceptor.add(ExceptionInterceptor.java:220) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.interceptor.BaseInterceptor.add(BaseInterceptor.java:129) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.authz.AciAuthorizationInterceptor.add(AciAuthorizationInterceptor.java:448) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.referral.ReferralInterceptor.add(ReferralInterceptor.java:251) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.authn.AuthenticationInterceptor.add(AuthenticationInterceptor.java:212) > at > org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1196) > at > org.apache.directory.server.core.normalization.NormalizationInterceptor.add(NormalizationInterceptor.java:117) > at > org.apache.directory.server.core.interceptor.InterceptorChain.add(InterceptorChain.java:756) > at > org.apache.directory.server.core.DefaultOperationManager.add(DefaultOperationManager.java:260) > at > org.apache.directory.server.core.DefaultCoreSession.add(DefaultCoreSession.java:183) > at > org.apache.directory.server.core.DefaultCoreSession.add(DefaultCoreSession.java:169) > at > org.apache.directory.server.ldap.handlers.AddHandler.handle(AddHandler.java:57) > at > org.apache.directory.server.ldap.handlers.AddHandler.handle(AddHandler.java:39) > at > org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:176) > at > org.apache.directory.server.ldap.handlers.LdapRequestHandler.handleMessage(LdapRequestHandler.java:56) > at > org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:232) > at > org.apache.directory.server.ldap.LdapProtocolHandler.messageReceived(LdapProtocolHandler.java:194) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:722) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802) > at > org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:59) > at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64) > at > org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:552) > at > org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:544) > at > org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:488) > at java.lang.Thread.run(Thread.java:619) > -- > Paul Edwards > Solutions Engineer > Identity Solutions Practice > --------------------------------------------------------- > hyro > > W www.hyro.com > > -- -- cordialement, regards, Emmanuel Lécharny www.iktek.com directory.apache.org
