You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2022/08/03 14:41:04 UTC

[sling-org-apache-sling-scripting-sightly] branch master updated: SLING-11508 - Make dependency resolution use ResourceResolver#getResource instead of ResourceResolver#resolve (#18)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new af7c518  SLING-11508 - Make dependency resolution use ResourceResolver#getResource instead of ResourceResolver#resolve (#18)
af7c518 is described below

commit af7c5185c56b550fc764052bcc3bbaa534362531
Author: Radu Cotescu <17...@users.noreply.github.com>
AuthorDate: Wed Aug 3 16:40:59 2022 +0200

    SLING-11508 - Make dependency resolution use ResourceResolver#getResource instead of ResourceResolver#resolve (#18)
    
    * switched from resolve to getResource
---
 .../sightly/engine/ResourceResolution.java         | 25 +++++++++++-----------
 .../scripting/sightly/impl/utils/ScriptUtils.java  | 10 +++------
 2 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/apache/sling/scripting/sightly/engine/ResourceResolution.java b/src/main/java/org/apache/sling/scripting/sightly/engine/ResourceResolution.java
index 41f359c..ad92576 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/engine/ResourceResolution.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/engine/ResourceResolution.java
@@ -144,10 +144,12 @@ public final class ResourceResolution {
 
     private static Resource locateInSearchPath(ResourceResolver resourceResolver, String path) {
         for (String searchPath : resourceResolver.getSearchPath()) {
-            String fullPath = searchPath + path;
-            Resource resource = resourceResolver.getResource(fullPath);
-            if (resource != null && resource.getPath().startsWith(searchPath)) { //prevent path traversal attack
-                return resource;
+            String fullPath = ResourceUtil.normalize(searchPath + path);
+            if (fullPath != null) {
+                Resource resource = resourceResolver.getResource(fullPath);
+                if (resource != null && resource.getPath().startsWith(searchPath)) { //prevent path traversal attack
+                    return resource;
+                }
             }
         }
         return null;
@@ -183,16 +185,15 @@ public final class ResourceResolution {
 
     private static Resource getScriptResource(@NotNull ResourceResolver resourceResolver, @NotNull String path) {
          if (path.startsWith("/")) {
-             Resource resource = resourceResolver.resolve(path);
-             if (ResourceUtil.isNonExistingResource(resource)) {
-                 return null;
-             }
-             return resource;
+             return resourceResolver.getResource(path);
          } else {
              for (String searchPath : resourceResolver.getSearchPath()) {
-                 Resource resource = resourceResolver.resolve(searchPath + path);
-                 if (!ResourceUtil.isNonExistingResource(resource)) {
-                     return resource;
+                 String resourcePath = ResourceUtil.normalize(searchPath + path);
+                 if (resourcePath != null) {
+                     Resource resource = resourceResolver.getResource(resourcePath);
+                     if (resource != null) {
+                         return resource;
+                     }
                  }
              }
          }
diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java b/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java
index 64ce4ff..d045624 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java
@@ -46,17 +46,13 @@ public class ScriptUtils {
     private static Resource getResource(@NotNull ResourceResolver resolver, @NotNull Resource resource) {
         String path = resource.getPath();
         if (path.startsWith("/")) {
-            Resource resolved = resolver.resolve(path);
-            if (ResourceUtil.isNonExistingResource(resolved)) {
-                return null;
-            }
-            return resolved;
+            return resolver.getResource(path);
         } else {
             for (String sp : resolver.getSearchPath()) {
                 String absolutePath = ResourceUtil.normalize(sp + path);
                 if (absolutePath != null) {
-                    Resource resolved = resolver.resolve(absolutePath);
-                    if (!ResourceUtil.isNonExistingResource(resolved)) {
+                    Resource resolved = resolver.getResource(absolutePath);
+                    if (resolved != null) {
                         return resolved;
                     }
                 }