You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by je...@apache.org on 2019/09/05 17:27:16 UTC

[sling-whiteboard] branch master updated: Adding post method and renaming some methods for consistency

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 33ca9ed  Adding post method and renaming some methods for consistency
33ca9ed is described below

commit 33ca9ed64150b2ee943e08f70b6997d5f5b0433f
Author: JE Bailey <je...@apache.org>
AuthorDate: Wed Sep 4 11:18:47 2019 -0400

    Adding post method and renaming some methods for consistency
---
 .../sling/transformer/TransformationContext.java   |  2 +-
 .../sling/transformer/TransformationStep.java      |  4 ++--
 .../sling/transformer/impl/NonceTransformer.java   |  6 +++---
 .../impl/TransformationContextImpl.java            |  4 ++--
 .../transformer/impl/TransformationFilter.java     | 25 ++++++++++------------
 .../impl/TransformationManagerImpl.java            |  6 ++++++
 .../impl/TransformationStepWrapper.java            |  2 +-
 7 files changed, 26 insertions(+), 23 deletions(-)

diff --git a/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java b/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java
index 471cdb4..261840d 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java
@@ -56,7 +56,7 @@ public interface TransformationContext {
      * 
      * @param elements
      */
-    void doNext(HtmlElement... elements);
+    void doNextStep(HtmlElement... elements);
 
     /**
      * Html Elements that were identified as being processed in the next step
diff --git a/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java b/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java
index aac7e3d..eb4b23d 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java
@@ -39,10 +39,10 @@ public interface TransformationStep {
      * @param element
      * @param context
      */
-    public void handle(HtmlElement element, TransformationContext context);
+    public void step(HtmlElement element, TransformationContext context);
 
     /**
-     * Called after all transformations have occurred but before a flush has been
+     * Called after all steps have occurred but before a flush has been
      * triggered
      * 
      * @param context
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java b/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java
index 2ff9cb5..db9c07d 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java
@@ -35,10 +35,10 @@ public class NonceTransformer implements TransformationStep {
     public void before(TransformationContext context) {
         String nonce = UUID.randomUUID().toString().replace("-", "");
         context.getState().put(NONCE, nonce);
-        context.getResponse().setHeader("X-nonce", nonce);
+        context.getResponse().setHeader("Content-Security-Policy","object-src 'none'; script-src 'nonce-"+nonce+"' 'strict-dynamic' 'unsafe-eval'");
     }
 
-    public void handle(HtmlElement element, TransformationContext context) {
+    public void step(HtmlElement element, TransformationContext context) {
 
         Map<String, Object> state = context.getState();
         String nonce = (String)state.get(NONCE);
@@ -49,7 +49,7 @@ public class NonceTransformer implements TransformationStep {
             }
         }
         
-        context.doNext(element);
+        context.doNextStep(element);
     }
 
 }
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java
index 323c503..65bbca8 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java
@@ -59,7 +59,7 @@ public class TransformationContextImpl implements TransformationContext {
      * the accept method of the consumer so that they may be passed on to the next
      * process.
      */
-    public void doNext(HtmlElement... elements) {
+    public void doNextStep(HtmlElement... elements) {
         if (reset) {
             list.clear();
             reset = false;
@@ -67,7 +67,7 @@ public class TransformationContextImpl implements TransformationContext {
         Collections.addAll(list, elements);
     }
 
-    public void next(String html) {
+    public void doNextStep(String html) {
         if (reset) {
             list.clear();
             reset = false;
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationFilter.java b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationFilter.java
index dadcb96..9d4aed9 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationFilter.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationFilter.java
@@ -40,7 +40,8 @@ import org.osgi.service.component.annotations.Reference;
  *
  */
 @Component(service = Filter.class, property = { Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
-        "sling.filter.scope=request", "sling.filter.scope=error", Constants.SERVICE_RANKING + ":Integer="+Integer.MIN_VALUE })
+        "sling.filter.scope=request", "sling.filter.scope=error",
+        Constants.SERVICE_RANKING + ":Integer=" + Integer.MIN_VALUE })
 public class TransformationFilter implements Filter {
 
     @Reference
@@ -72,25 +73,21 @@ public class TransformationFilter implements Filter {
         if (!(request instanceof SlingHttpServletRequest)) {
             throw new ServletException("Request is not a Apache Sling HTTP request.");
         }
-        
+
         final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) request;
         final SlingHttpServletResponse slingResponse = (SlingHttpServletResponse) response;
-        
+
         List<TransformationStep> steps = manager.getSteps(slingRequest);
-        
-        if (!steps.isEmpty()){
+
+        if (!steps.isEmpty()) {
             TransformationContext context = new TransformationContextImpl(slingRequest, slingResponse, steps);
-            steps.forEach(transformer ->
-                transformer.before(context)
-            );
+            steps.forEach(transformer -> transformer.before(context));
             response = new TransformationResponse(context);
-        }
-        
-        chain.doFilter(request, response);
-        
-        if (!steps.isEmpty()){
+            chain.doFilter(request, response);
+            steps.forEach(transformer -> transformer.after(context));
             response.flushBuffer();
+        } else {
+            chain.doFilter(request, response);
         }
-
     }
 }
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java
index 9de78e9..acbefd4 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java
@@ -73,6 +73,12 @@ public class TransformationManagerImpl implements TransformationManager {
                     return false;
                 }
                 break;
+            case TransformationConstants.EXTENSIONS:
+                String extension = (String) properties.get(key);
+                if (!request.getRequestURI().endsWith(extension)) {
+                    return false;
+                }
+                break;
             default:
             }
 
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationStepWrapper.java b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationStepWrapper.java
index c22bb93..479fa6c 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationStepWrapper.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationStepWrapper.java
@@ -40,7 +40,7 @@ public class TransformationStepWrapper implements Function<HtmlElement, Stream<H
 
     @Override
     public Stream<HtmlElement> apply(HtmlElement element) {
-        tStep.handle(element, transformationContext);
+        tStep.step(element, transformationContext);
         return transformationContext.getElements();
     }