I'm attempting to do a propfind on the principal uri's that are returned
from WebdavResource.aclfindMethod(). For example...
// ace[i].getPrincipal() returns "/slide/+/users/group/foo"
org.apache.webdav.lib.properties.AclProperty acl =
m_wd.aclfindMethod(uri);
org.apache.webdav.lib.Ace[] ace = acl.getAces();
for(int i = 0; i < ace.length; i++){
// Get the principal display name
java.util.Enumeration dn =
m_wd.propfindMethod(ace[i].getPrincipal(), "displayname");
if(dn.hasMoreElements()){
// found it
}
}
The problem is the "+" in the uri is lost somewhere during the
propfindMethod call. If I look at the server log I get something like
this.
31 Oct 2003 08:44:59 - org.apache.slide.common.Domain - WARNING - Not
Found
31 Oct 2003 08:44:59 -
org.apache.slide.transaction.SlideTransactionManager - INFO - Rollback
Transaction 584 xid Thread.
31 Oct 2003 08:44:59 - org.apache.slide.webdav.WebdavServlet - INFO -
PROPFIND = 207 Multi-Status (time: 0 ms) URI = / /users/group/foo
How do I get the "+" passed to the server's propfind implementation?
I've attempted to URLUtil.URLEncode(ace[i].getPrincipal(), "UTF8"); but
that doesn't help.
Note that if I strip the "+" out of the uri to look like this
"/slide/users/group/foo" then the propfindMethod is able to locate the
resource.
How can I access this resource without modifying the original uri?
Thanks in advance for a quick response.
Regards,
Matt