You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by en...@apache.org on 2020/09/18 23:29:00 UTC

[sling-org-apache-sling-jcr-contentloader] branch master updated: SLING-9735 Remove loginAdministrative() usage from org.apache.sling.jcr.contentloader

This is an automated email from the ASF dual-hosted git repository.

enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git


The following commit(s) were added to refs/heads/master by this push:
     new 2647cbf  SLING-9735 Remove loginAdministrative() usage from org.apache.sling.jcr.contentloader
2647cbf is described below

commit 2647cbf573790e756a7f31793bcb680d79606483
Author: Eric Norman <en...@apache.org>
AuthorDate: Fri Sep 18 16:28:50 2020 -0700

    SLING-9735 Remove loginAdministrative() usage from
    org.apache.sling.jcr.contentloader
---
 pom.xml                                            |  2 +-
 .../contentloader/hc/BundleContentLoadedCheck.java |  2 +-
 .../internal/ContentLoaderService.java             |  4 +--
 .../contentloader/it/ContentloaderTestSupport.java | 33 ++++++++++++++++++----
 4 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/pom.xml b/pom.xml
index dafa4aa..ac6cd0d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -138,7 +138,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.jcr.api</artifactId>
-            <version>2.0.6</version>
+            <version>2.3.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/hc/BundleContentLoadedCheck.java b/src/main/java/org/apache/sling/jcr/contentloader/hc/BundleContentLoadedCheck.java
index d58d5f8..2fe432b 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/hc/BundleContentLoadedCheck.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/hc/BundleContentLoadedCheck.java
@@ -115,7 +115,7 @@ public class BundleContentLoadedCheck implements HealthCheck {
 
         Session metadataSession = null;
         try {
-            metadataSession = repository.loginAdministrative(null);
+            metadataSession = repository.loginService(null, null);
             
             BundleHelper bundleHelper = new ContentLoaderService();
             
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
index e6ee7b4..d68d605 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
@@ -299,7 +299,7 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
     @Override
     public Session getSession()
     throws RepositoryException {
-        return getRepository().loginAdministrative(null);
+        return getRepository().loginService(null, null);
     }
 
     /**
@@ -307,7 +307,7 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
      */
     @Override
     public Session getSession(final String workspace) throws RepositoryException {
-        return getRepository().loginAdministrative(workspace);
+        return getRepository().loginService(null, workspace);
     }
 
     /**
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/it/ContentloaderTestSupport.java b/src/test/java/org/apache/sling/jcr/contentloader/it/ContentloaderTestSupport.java
index 8a2d894..5a8e1b1 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/it/ContentloaderTestSupport.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/it/ContentloaderTestSupport.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.jcr.contentloader.it;
 
+import static org.apache.felix.hc.api.FormattingResultLog.msHumanReadable;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingQuickstartOakTar;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingResourcePresence;
 import static org.junit.Assert.assertEquals;
@@ -29,9 +30,7 @@ import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.streamBundle;
 import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfiguration;
-import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
 import static org.ops4j.pax.tinybundles.core.TinyBundles.withBnd;
-import static org.apache.felix.hc.api.FormattingResultLog.msHumanReadable;
 
 import java.io.BufferedWriter;
 import java.io.IOException;
@@ -45,6 +44,7 @@ import java.util.concurrent.TimeUnit;
 import javax.inject.Inject;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
 
 import org.apache.felix.hc.api.Result;
 import org.apache.felix.hc.api.ResultLog;
@@ -72,6 +72,9 @@ import com.google.common.collect.Multimap;
 
 public abstract class ContentloaderTestSupport extends TestSupport {
 
+    protected static final String CONTENT_LOADER_VERIFY_USER = "content-loader-user";
+    protected static final char[] CONTENT_LOADER_VERIFY_PWD = "testing".toCharArray();
+
     protected static final String TAG_TESTING_CONTENT_LOADING = "testing-content-loading";
 
     @Inject
@@ -107,14 +110,32 @@ public abstract class ContentloaderTestSupport extends TestSupport {
         return composite(
             super.baseConfiguration(),
             quickstart(),
+            // SLING-9735 - add server user for the o.a.s.jcr.contentloader bundle
+            factoryConfiguration("org.apache.sling.jcr.repoinit.RepositoryInitializer")
+                .put("scripts", new String[] {
+                        "create service user sling-content-loader\n" +
+                        "\n" +
+                        "set ACL for sling-content-loader\n" +
+                        "    allow   jcr:all    on /\n" +
+                        "end"})
+                .asOption(),
+            factoryConfiguration("org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended")
+                .put("user.mapping", new String[]{"org.apache.sling.jcr.contentloader=sling-content-loader"})
+                .asOption(),
             // Sling JCR ContentLoader
             testBundle("bundle.filename"),
             factoryConfiguration("org.apache.sling.resource.presence.internal.ResourcePresenter")
                 .put("path", CONTENT_ROOT_PATH)
                 .asOption(),
-            // testing
-            newConfiguration("org.apache.sling.jcr.base.internal.LoginAdminWhitelist")
-                .put("whitelist.bundles.regexp", "PAXEXAM-PROBE-.*")
+            // testing - add a user to use to login and verify the content loading has happened
+            factoryConfiguration("org.apache.sling.jcr.repoinit.RepositoryInitializer")
+                .put("scripts", new String[] {
+                        "create user " + CONTENT_LOADER_VERIFY_USER + " with password " + new String(CONTENT_LOADER_VERIFY_PWD) +"\n" +
+                        "\n" +
+                        "set ACL for content-loader-user\n" +
+                        "    allow   jcr:read              on /\n" +
+                        "    allow   jcr:readAccessControl on /\n" +
+                        "end"})
                 .asOption(),
             slingResourcePresence(),
             junitBundles()
@@ -131,7 +152,7 @@ public abstract class ContentloaderTestSupport extends TestSupport {
 
     @Before
     public void setup() throws Exception {
-        session = repository.loginAdministrative(null);
+        session = repository.login(new SimpleCredentials(CONTENT_LOADER_VERIFY_USER, CONTENT_LOADER_VERIFY_PWD));
     }
 
     @After