SLING-9809 Remove loginAdministrative() usage from
o.a.s.jcr.jackrabbit.usermanager
diff --git a/pom.xml b/pom.xml
index 6b2c905..828c719 100644
--- a/pom.xml
+++ b/pom.xml
@@ -134,6 +134,12 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.jcr.api</artifactId>
+ <version>2.3.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.jcr.base</artifactId>
<version>2.0.6</version>
<scope>provided</scope>
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
index 639e4a8..8a20afa 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
@@ -297,7 +297,7 @@
// do the work on their behalf as a service user
Session svcSession = null;
try {
- svcSession = repository.loginAdministrative(null);
+ svcSession = repository.loginService(null, null);
UserManager um = AccessControlUtil.getUserManager(svcSession);
User user2 = (User) um.getAuthorizable(name);
user2.changePassword(newPassword, oldPassword);
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
index 8b5ab29..34285c1 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
@@ -151,7 +151,7 @@
* Returns an administrative session to the default workspace.
*/
private Session getSession() throws RepositoryException {
- return repository.loginAdministrative(null);
+ return repository.loginService(null, null);
}
/**
diff --git a/src/test/java/org/apache/sling/jcr/jackrabbit/usermanager/it/UserManagerTestSupport.java b/src/test/java/org/apache/sling/jcr/jackrabbit/usermanager/it/UserManagerTestSupport.java
index 11c1440..5eb1138 100644
--- a/src/test/java/org/apache/sling/jcr/jackrabbit/usermanager/it/UserManagerTestSupport.java
+++ b/src/test/java/org/apache/sling/jcr/jackrabbit/usermanager/it/UserManagerTestSupport.java
@@ -26,6 +26,7 @@
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.vmOption;
+import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfiguration;
import java.util.Dictionary;
import java.util.Enumeration;
@@ -84,6 +85,19 @@
optionalRemoteDebug(),
quickstart(),
sling(),
+ // SLING-9809 - add server user for the o.a.s.jcr.jackrabbit.usermanager bundle
+ factoryConfiguration("org.apache.sling.jcr.repoinit.RepositoryInitializer")
+ .put("scripts", new String[] {
+ "create service user sling-jcr-usermanager with path system/sling\n" +
+ "\n" +
+ "set ACL for sling-jcr-usermanager\n" +
+ " allow jcr:read,jcr:readAccessControl,jcr:modifyAccessControl,rep:write,rep:userManagement on /home\n" +
+ "end"})
+ .asOption(),
+ factoryConfiguration("org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended")
+ .put("user.mapping", new String[]{"org.apache.sling.jcr.jackrabbit.usermanager=sling-jcr-usermanager"})
+ .asOption(),
+
// Sling JCR UserManager
testBundle("bundle.filename"),
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.jcr.jackrabbit.accessmanager").versionAsInProject(),