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(),