You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2013/04/24 11:05:53 UTC
svn commit: r1471305 - in /jackrabbit/branches/2.4: ./
jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/version/report/JcrPrivilegeReport.java
Author: reschke
Date: Wed Apr 24 09:05:53 2013
New Revision: 1471305
URL: http://svn.apache.org/r1471305
Log:
JCR-3580: JcrPrivilegeReport needs to deal with both absolute paths and absolute URIs in payloads (ported to 2.4)
Modified:
jackrabbit/branches/2.4/ (props changed)
jackrabbit/branches/2.4/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/version/report/JcrPrivilegeReport.java
Propchange: jackrabbit/branches/2.4/
------------------------------------------------------------------------------
Merged /jackrabbit/trunk:r1471286
Modified: jackrabbit/branches/2.4/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/version/report/JcrPrivilegeReport.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.4/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/version/report/JcrPrivilegeReport.java?rev=1471305&r1=1471304&r2=1471305&view=diff
==============================================================================
--- jackrabbit/branches/2.4/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/version/report/JcrPrivilegeReport.java (original)
+++ jackrabbit/branches/2.4/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/version/report/JcrPrivilegeReport.java Wed Apr 24 09:05:53 2013
@@ -95,6 +95,7 @@ public class JcrPrivilegeReport extends
// immediately build the final multistatus element
Element hrefElem = info.getContentElement(DavConstants.XML_HREF, DavConstants.NAMESPACE);
String href = DomUtil.getTextTrim(hrefElem);
+ href = obtainAbsolutePathFromUri(href); // TODO: we should check whether the authority component matches
DavResourceLocator resourceLoc = resource.getLocator();
DavResourceLocator loc = resourceLoc.getFactory().createResourceLocator(resourceLoc.getPrefix(), href);
// immediately build the final multistatus element
@@ -131,4 +132,20 @@ public class JcrPrivilegeReport extends
resp.add(new CurrentUserPrivilegeSetProperty(currentPrivs.toArray(new Privilege[currentPrivs.size()])));
ms.addResponse(resp);
}
+
+ private static String obtainAbsolutePathFromUri(String uri) {
+ try {
+ java.net.URI u = new java.net.URI(uri);
+ StringBuilder sb = new StringBuilder();
+ sb.append(u.getRawPath());
+ if (u.getRawQuery() != null) {
+ sb.append("?" + u.getRawQuery());
+ }
+ return sb.toString();
+ }
+ catch (java.net.URISyntaxException ex) {
+ log.warn("parsing " + uri, ex);
+ return uri;
+ }
+ }
}
\ No newline at end of file