From 19898792d82508306ccfdedbd5482068b4f7767e Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Thu, 17 Oct 2024 07:32:58 +0000
Subject: [PATCH] [#90, #432] FIX delete entries in overlapping backends (#434)
---
opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java | 5 +++--
opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index 2da5e02..7fb633e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -13,6 +13,7 @@
*
* Copyright 2008-2009 Sun Microsystems, Inc.
* Portions Copyright 2011-2016 ForgeRock AS.
+ * Portions Copyright 2022-2024 3A Systems, LLC.
*/
package org.opends.server.workflowelement.localbackend;
@@ -281,8 +282,8 @@
{
if (dn.isInScopeOf(entryDN, SearchScope.WHOLE_SUBTREE)) {
setResultCodeAndMessageNoInfoDisclosure(entry,ResultCode.NOT_ALLOWED_ON_NONLEAF, ERR_DELETE_HAS_SUB_BACKEND.get(entryDN, dn));
- }
- return;
+ return;
+ }
}
// Actually perform the delete.
diff --git a/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java b/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java
index 4294802..61c3a3c 100644
--- a/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java
+++ b/opendj-server-legacy/src/test/java/org/openidentityplatform/opendj/OverlappingBackendTestSuite.java
@@ -30,6 +30,7 @@
import java.util.Set;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.testng.Assert.assertEquals;
@Test(sequential = true)
public class OverlappingBackendTestSuite extends DirectoryServerTestCase {
@@ -125,5 +126,26 @@
hasUserRoot(search("o=test"));
hasUserRoot2(search("o=test"));
hasUserRoot2(search("ou=eus,o=test"));
+
+ int resultCode = TestCaseUtils.applyModifications(true,
+ "dn: uid=user.1,o=test,ou=es,o=test",
+ "changetype: modify",
+ "add: description",
+ "description: user.1");
+ assertEquals(resultCode, 0);
+
+ resultCode = TestCaseUtils.applyModifications(true,
+ "dn: uid=user.2,o=test,ou=eus,o=test",
+ "changetype: modify",
+ "add: description",
+ "description: user.2");
+ assertEquals(resultCode, 0);
+
+ hasUserRoot(search("o=test"));
+ hasUserRoot2(search("o=test"));
+ hasUserRoot2(search("ou=eus,o=test"));
+
+ TestCaseUtils.deleteEntry(DN.valueOf("uid=user.1,o=test,ou=es,o=test"));
+ TestCaseUtils.deleteEntry(DN.valueOf("uid=user.2,o=test,ou=eus,o=test"));
}
}
--
Gitblit v1.10.0