Author: justin
Date: Thu Jun 2 22:05:55 2011
New Revision: 1130845
URL: http://svn.apache.org/viewvc?rev=1130845&view=rev
Log:
SLING-2096 - checking for the workspace name in the request
Modified:
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
Modified:
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java?rev=1130845&r1=1130844&r2=1130845&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
(original)
+++
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
Thu Jun 2 22:05:55 2011
@@ -594,6 +594,22 @@ public class JcrResourceResolver
return null;
}
}
+ } else {
+ // check for workspace info in request
+ workspaceName = (request == null ? null :
+
(String)request.getAttribute(ResourceResolver.REQUEST_ATTR_WORKSPACE_INFO));
+ if ( workspaceName != null &&
!workspaceName.equals(getSession().getWorkspace().getName())) {
+ LOGGER.debug("Delegating resolving to resolver for
workspace {}", workspaceName);
+ try {
+ JcrResourceResolver wsResolver =
getResolverForWorkspace(workspaceName);
+ res = wsResolver.resolveInternal(mappedPath);
+ } catch (LoginException e) {
+ // requested a resource in a workspace I don't have
access to.
+ // we treat this as a not found resource
+ return null;
+ }
+
+ }
}
}