You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2021/04/27 15:38:56 UTC
[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-10334 :
PrivilegesHandler: regexp never matches privileges definitions from content
packages
This is an automated email from the ASF dual-hosted git repository.
angela pushed a commit to branch SLING-10334
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git
commit 793eccef68a591a39a2e9dcab3140cb7164ef00f
Author: angela <an...@adobe.com>
AuthorDate: Tue Apr 27 17:38:32 2021 +0200
SLING-10334 : PrivilegesHandler: regexp never matches privileges definitions from content packages
---
.../cpconverter/handlers/PrivilegesHandler.java | 2 +-
.../ContentPackage2FeatureModelConverterTest.java | 30 +++++++++++++++++++++
.../handlers/PrivilegesHandlerTest.java | 2 +-
.../feature/cpconverter/test-with-privilege.zip | Bin 0 -> 14592 bytes
4 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandler.java
index 329a394..0a9e6ff 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandler.java
@@ -27,7 +27,7 @@ import java.util.Objects;
public class PrivilegesHandler extends AbstractRegexEntryHandler {
public PrivilegesHandler() {
- super("META-INF/vault/privileges\\.xml");
+ super("/META-INF/vault/privileges\\.xml");
}
@Override
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java
index 5cc4f2d..b223e77 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java
@@ -22,6 +22,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import java.io.File;
import java.io.FileInputStream;
@@ -43,6 +47,7 @@ import javax.json.JsonArray;
import javax.json.JsonObject;
import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.vault.fs.spi.PrivilegeDefinitions;
import org.apache.jackrabbit.vault.packaging.CyclicDependencyException;
import org.apache.jackrabbit.vault.packaging.PackageId;
import org.apache.jackrabbit.vault.packaging.PackageProperties;
@@ -55,6 +60,7 @@ import org.apache.sling.feature.Configuration;
import org.apache.sling.feature.Extension;
import org.apache.sling.feature.ExtensionType;
import org.apache.sling.feature.Feature;
+import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
import org.apache.sling.feature.cpconverter.accesscontrol.DefaultAclManager;
import org.apache.sling.feature.cpconverter.artifacts.DefaultArtifactsDeployer;
import org.apache.sling.feature.cpconverter.features.DefaultFeaturesManager;
@@ -377,6 +383,30 @@ public class ContentPackage2FeatureModelConverterTest {
}
}
+ @Test
+ public void testContentPackageWithPrivileges() throws Exception {
+ URL packageUrl = getClass().getResource("test-with-privilege.zip");
+ File packageFile = FileUtils.toFile(packageUrl);
+
+ AclManager aclManager = spy(new DefaultAclManager());
+
+ File outputDirectory = new File(System.getProperty("java.io.tmpdir"), getClass().getName() + '_' + System.currentTimeMillis());
+ try {
+ DefaultEntryHandlersManager handlersManager = new DefaultEntryHandlersManager();
+ ContentPackage2FeatureModelConverter converter = new ContentPackage2FeatureModelConverter()
+ .setEntryHandlersManager(handlersManager)
+ .setAclManager(aclManager);
+
+ converter.setFeaturesManager(new DefaultFeaturesManager(true, 5, outputDirectory, null, null, null, aclManager))
+ .setBundlesDeployer(new DefaultArtifactsDeployer(outputDirectory))
+ .setEmitter(DefaultPackagesEventsEmitter.open(outputDirectory))
+ .convert(packageFile);
+ } finally {
+ verify(aclManager, times(1)).addPrivilegeDefinitions(any(PrivilegeDefinitions.class));
+ deleteDirTree(outputDirectory);
+ }
+ }
+
private void deleteDirTree(File dir) throws IOException {
Path tempDir = dir.toPath();
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
index 66813b5..925fda9 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
@@ -61,7 +61,7 @@ public class PrivilegesHandlerTest {
@Test
public void matches() {
- assertTrue(handler.matches("META-INF/vault/privileges.xml"));
+ assertTrue(handler.matches("/META-INF/vault/privileges.xml"));
}
@Test
diff --git a/src/test/resources/org/apache/sling/feature/cpconverter/test-with-privilege.zip b/src/test/resources/org/apache/sling/feature/cpconverter/test-with-privilege.zip
new file mode 100755
index 0000000..d7f076e
Binary files /dev/null and b/src/test/resources/org/apache/sling/feature/cpconverter/test-with-privilege.zip differ