You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2019/06/02 08:21:39 UTC
[sling-org-apache-sling-clam] 02/09: SLING-8258 Provide HTTP API
for Sling Clam
This is an automated email from the ASF dual-hosted git repository.
olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-clam.git
commit c3cd5ab21b3d76cec56b780c5cfc4f7d98ca7f79
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri May 31 18:30:51 2019 +0200
SLING-8258 Provide HTTP API for Sling Clam
* rename scan servlet
* change path
* use constants
* add debug logging
---
pom.xml | 11 ++++++++++
...lamScanServlet.java => ClamJcrScanServlet.java} | 25 ++++++++++++----------
...n.java => ClamJcrScanServletConfiguration.java} | 4 ++--
3 files changed, 27 insertions(+), 13 deletions(-)
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.SlingHttpServletRequest;
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 @@ import static org.apache.sling.clam.internal.ClamUtil.propertyTypesFromNames;
@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 @@ public class ClamScanServlet extends SlingAllMethodsServlet {
)
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 @@ public class ClamScanServlet extends SlingAllMethodsServlet {
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 @@ public class ClamScanServlet extends SlingAllMethodsServlet {
}
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.ObjectClassDefinition;
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",