SLING-8258 Provide HTTP API for Sling Clam

* rename scan servlet
* change path
* use constants
* add debug logging
diff --git a/pom.xml b/pom.xml
index 2467452..0e571d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,6 +177,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.auth.core</artifactId>
+      <version>1.2.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling</groupId>
       <artifactId>org.apache.sling.event</artifactId>
       <version>4.2.10</version>
       <scope>provided</scope>
@@ -195,6 +201,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.servlets.resolver</artifactId>
+      <version>2.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling</groupId>
       <artifactId>org.apache.sling.serviceusermapper</artifactId>
       <version>1.3.0</version>
       <scope>provided</scope>
diff --git a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServlet.java b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServlet.java
similarity index 83%
rename from src/main/java/org/apache/sling/clam/http/internal/ClamScanServlet.java
rename to src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServlet.java
index 837acff..02be234 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServlet.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServlet.java
@@ -32,7 +32,9 @@
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
+import org.apache.sling.auth.core.AuthConstants;
 import org.apache.sling.clam.jcr.NodeDescendingJcrPropertyDigger;
+import org.apache.sling.servlets.resolver.internal.ServletResolverConstants;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.framework.Constants;
 import org.osgi.service.component.annotations.Activate;
@@ -57,16 +59,16 @@
 @Component(
     service = Servlet.class,
     property = {
-        Constants.SERVICE_DESCRIPTION + "=Apache Sling Clam Scan Servlet",
+        Constants.SERVICE_DESCRIPTION + "=Apache Sling Clam JCR Scan Servlet",
         Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
-        "sling.servlet.paths=/bin/clam/scan",
-        "sling.auth.requirements=/bin/clam/scan"
+        ServletResolverConstants.SLING_SERVLET_PATHS + "=/system/clam-jcr-scan",
+        AuthConstants.AUTH_REQUIREMENTS + "=/system/clam-jcr-scan"
     }
 )
 @Designate(
-    ocd = ClamScanServletConfiguration.class
+    ocd = ClamJcrScanServletConfiguration.class
 )
-public class ClamScanServlet extends SlingAllMethodsServlet {
+public class ClamJcrScanServlet extends SlingAllMethodsServlet {
 
     @Reference(
         policy = ReferencePolicy.DYNAMIC,
@@ -74,26 +76,26 @@
     )
     private volatile NodeDescendingJcrPropertyDigger digger;
 
-    private ClamScanServletConfiguration configuration;
+    private ClamJcrScanServletConfiguration configuration;
 
     private Pattern pattern;
 
     private Set<Integer> propertyTypes;
 
-    private final Logger logger = LoggerFactory.getLogger(ClamScanServlet.class);
+    private final Logger logger = LoggerFactory.getLogger(ClamJcrScanServlet.class);
 
-    public ClamScanServlet() {
+    public ClamJcrScanServlet() {
     }
 
     @Activate
-    private void activate(final ClamScanServletConfiguration configuration) throws Exception {
+    private void activate(final ClamJcrScanServletConfiguration configuration) throws Exception {
         logger.debug("activating");
         this.configuration = configuration;
         configure(configuration);
     }
 
     @Modified
-    private void modified(final ClamScanServletConfiguration configuration) throws Exception {
+    private void modified(final ClamJcrScanServletConfiguration configuration) throws Exception {
         logger.debug("modifying");
         this.configuration = configuration;
         configure(configuration);
@@ -107,7 +109,7 @@
         propertyTypes = null;
     }
 
-    private void configure(final ClamScanServletConfiguration configuration) throws Exception {
+    private void configure(final ClamJcrScanServletConfiguration configuration) throws Exception {
         pattern = Pattern.compile(configuration.digger_default_property_path_pattern());
         propertyTypes = propertyTypesFromNames(configuration.digger_default_property_types());
     }
@@ -154,6 +156,7 @@
         }
 
         try {
+            logger.debug("digging in {} (not deeper than {} levels) for properties of types {} matching {} limited by {} bytes", node.getPath(), maxDepth, propertyTypes, pattern, maxLength);
             digger.dig(node, pattern, propertyTypes, maxLength, maxDepth);
         } catch (Exception e) {
             handleError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
diff --git a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServletConfiguration.java b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServletConfiguration.java
similarity index 96%
rename from src/main/java/org/apache/sling/clam/http/internal/ClamScanServletConfiguration.java
rename to src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServletConfiguration.java
index 9fcf4ec..b8b9b76 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServletConfiguration.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServletConfiguration.java
@@ -23,10 +23,10 @@
 import org.osgi.service.metatype.annotations.Option;
 
 @ObjectClassDefinition(
-    name = "Apache Sling Clam Scan Servlet",
+    name = "Apache Sling Clam JCR Scan Servlet",
     description = "..."
 )
-@interface ClamScanServletConfiguration {
+@interface ClamJcrScanServletConfiguration {
 
     @AttributeDefinition(
         name = "scan authorized groups",