| commit | 558a071087eb6c588529755423fb7cbff55a775f | [log] [tgz] |
|---|---|---|
| author | Mike Müller <mykee@apache.org> | Tue Sep 09 06:49:02 2014 +0000 |
| committer | Mike Müller <mykee@apache.org> | Tue Sep 09 06:49:02 2014 +0000 |
| tree | 98bc472ac141ec088e8530d2b981b21b08f5dd2a | |
| parent | 7a989bae7cc3b5d568b85bdb52a061abb89b0bde [diff] |
SLING-3917 - Add transformQuery support to the ResourceAccessSecurity Implementation git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1623676 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/resourceaccesssecurity/ResourceAccessGate.java b/src/main/java/org/apache/sling/resourceaccesssecurity/ResourceAccessGate.java index 6ee4e2b..dd7ce7a 100644 --- a/src/main/java/org/apache/sling/resourceaccesssecurity/ResourceAccessGate.java +++ b/src/main/java/org/apache/sling/resourceaccesssecurity/ResourceAccessGate.java
@@ -187,7 +187,8 @@ * the language in which the query is expressed * @param resourceResolver * the resource resolver which resolves the query - * @return the transformed query + * @return the transformed query or the original query if no tranformation + * took place. This method should never return <code>null</code> * @throws AccessSecurityException */ public String transformQuery(String query, String language,
diff --git a/src/main/java/org/apache/sling/resourceaccesssecurity/impl/ResourceAccessSecurityImpl.java b/src/main/java/org/apache/sling/resourceaccesssecurity/impl/ResourceAccessSecurityImpl.java index cd1f200..53adb79 100644 --- a/src/main/java/org/apache/sling/resourceaccesssecurity/impl/ResourceAccessSecurityImpl.java +++ b/src/main/java/org/apache/sling/resourceaccesssecurity/impl/ResourceAccessSecurityImpl.java
@@ -339,7 +339,20 @@ final String language, final ResourceResolver resourceResolver) throws AccessSecurityException { - return query; + String returnValue = query; + + for (ResourceAccessGateHandler handler : allHandlers) { + returnValue = handler.getResourceAccessGate().transformQuery( + returnValue, language, resourceResolver); + if (returnValue == null) { + throw new AccessSecurityException( + "Method transformQuery in ResourceAccessGate " + + handler.getResourceAccessGate().getClass() + .getName() + " returned null."); + } + } + + return returnValue; } /**