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

 

 

Reply via email to