mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
27.04.2011 bb917d0ac64be191c867a2e0432412a2e24d0080
Fix OPENDJ-278: ldapSubentry entries should have an implicit scope of { base="" } when no subtree specification is specified
2 files modified
42 ■■■■ changed files
opendj-sdk/opends/src/server/org/opends/server/types/SubEntry.java 5 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/SubentryManagerTestCase.java 37 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/types/SubEntry.java
@@ -246,9 +246,8 @@
    {
      // There is none for some reason eg this could be
      // old Draft based ldapSubEntry so create a dummy.
      this.subTreeSpec = new SubtreeSpecification(
                DN.NULL_DN, null, -1, -1,
                null, null, null);
      this.subTreeSpec = new SubtreeSpecification(entry.getDN().getParent(),
          null, -1, -1, null, null, null);
    }
    // Determine if this subentry is collective attribute subentry.
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/SubentryManagerTestCase.java
@@ -58,6 +58,7 @@
  private Entry testEntry;
  private Entry ldapSubentry;
  private Entry legacyLdapSubentry;
  private Entry collectiveSubentry;
  @BeforeClass
@@ -73,6 +74,7 @@
  {
    TestCaseUtils.deleteEntry(collectiveSubentry.getDN());
    TestCaseUtils.deleteEntry(ldapSubentry.getDN());
    TestCaseUtils.deleteEntry(legacyLdapSubentry.getDN());
    SubentryManager manager = DirectoryServer.getSubentryManager();
    assertNotNull(manager);
@@ -99,13 +101,15 @@
    assertNotNull(manager);
    List<SubEntry> subentryList = manager.getSubentries(testEntry.getDN());
    assertNotNull(subentryList);
    assertEquals(subentryList.size(), 1);
    assertEquals(subentryList.size(), 2);
    assertEquals(subentryList.get(0).getDN(), ldapSubentry.getDN());
    assertEquals(subentryList.get(1).getDN(), legacyLdapSubentry.getDN());
    subentryList.clear();
    subentryList = manager.getSubentries(testEntry);
    assertNotNull(subentryList);
    assertEquals(subentryList.size(), 1);
    assertEquals(subentryList.size(), 2);
    assertEquals(subentryList.get(0).getEntry(), ldapSubentry);
    assertEquals(subentryList.get(1).getEntry(), legacyLdapSubentry);
    subentryList.clear();
    subentryList = manager.getCollectiveSubentries(testEntry.getDN());
    assertNotNull(subentryList);
@@ -116,6 +120,15 @@
    assertNotNull(subentryList);
    assertEquals(subentryList.size(), 1);
    assertEquals(subentryList.get(0).getEntry(), collectiveSubentry);
    subentryList.clear();
    subentryList = manager.getSubentries(legacyLdapSubentry.getDN().getParent());
    assertNotNull(subentryList);
    assertEquals(subentryList.size(), 1);
    assertEquals(subentryList.get(0).getEntry(), legacyLdapSubentry);
    subentryList.clear();
    subentryList = manager.getSubentries(legacyLdapSubentry.getDN().getParent().getParent());
    assertNotNull(subentryList);
    assertEquals(subentryList.size(), 0);
  }
  @Test
@@ -571,8 +584,10 @@
            "uid=rogasawara," + NEWBASE + "," + SUFFIX)));
    assertTrue(DirectoryServer.getSubentryManager().getCollectiveSubentries(
          DN.decode("uid=rogasawara," + NEWBASE + "," + SUFFIX)).isEmpty());
    assertTrue(DirectoryServer.getSubentryManager().getSubentries(
          DN.decode("uid=rogasawara," + NEWBASE + "," + SUFFIX)).isEmpty());
    // The legacyLdapSubentry should still apply.
    assertEquals(DirectoryServer.getSubentryManager().getSubentries(
          DN.decode("uid=rogasawara," + NEWBASE + "," + SUFFIX)).size(), 1);
    // Move it back.
    String oldPath = TestCaseUtils.createTempFile(
@@ -740,6 +755,20 @@
    assertEquals(addOperation.getResultCode(), ResultCode.SUCCESS);
    assertNotNull(DirectoryServer.getEntry(ldapSubentry.getDN()));
    // Add test legacy subentry.
    legacyLdapSubentry = TestCaseUtils.makeEntry(
         "dn: cn=Legacy Subentry," + SUFFIX,
         "objectClass: top",
         "objectclass: ldapSubentry",
         "cn: Legacy Subentry");
    addOperation =
         connection.processAdd(legacyLdapSubentry.getDN(),
                               legacyLdapSubentry.getObjectClasses(),
                               legacyLdapSubentry.getUserAttributes(),
                               legacyLdapSubentry.getOperationalAttributes());
    assertEquals(addOperation.getResultCode(), ResultCode.SUCCESS);
    assertNotNull(DirectoryServer.getEntry(legacyLdapSubentry.getDN()));
    // Add test collective subentry.
    collectiveSubentry = TestCaseUtils.makeEntry(
         "dn: cn=Collective Subentry," + SUFFIX,