Uploaded image for project: 'Directory ApacheDS'
  1. Directory ApacheDS
  2. DIRSERVER-1368

Using Extended Objectclass fails

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.5.5
    • 1.5.5
    • core
    • None
    • Linux - Ubuntu 9.04

    Description

      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)

      Attachments

        1. ApacheDSTest.java
          7 kB
          Paul Edwards
        2. ApacheDSUtils.java
          5 kB
          Paul Edwards

        Activity

          People

            elecharny Emmanuel Lécharny
            paul.edwards@hyro.com Paul Edwards
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: