I've created a bug entry for this: http://issues.apache.org/bugzilla/show_bug.cgi?id=32352
-James On Sat, 2004-11-20 at 00:13 -0500, Jason McElravy wrote: > In AclSecurityImpl.evaluateAcl() when checking to see if /users/john can > /actions/write resource /files/john/test.txt, the code finds a > permissions match on the following permission (output is from the > toString method): > permission=[object=/files/john, subject=/roles/user, > action=/actions/write, ->GRANT] > because john has both /action/write permissions and matches the role of > /roles/user but it doesn't find a match when the subject is owner > because it only finds a match on the /action/write permission. The > match on the subject fails because john is not yet the owner of > /files/john/test.txt from what I can see. Since /files/john/test.txt is > a new resource, the check should only be on /files/john. > > Jason > -----Original Message----- > From: James Mason [mailto:[EMAIL PROTECTED] > Sent: Friday, November 19, 2004 11:14 PM > To: Slide Users Mailing List > Subject: RE: write privileges for owner > > This sounds like a bug. > > You say it works if you grant write /roles/users? How does the logic in > SecurityImpl differ in that case? > > -James > > On Fri, 2004-11-19 at 16:00 -0500, Jason McElravy wrote: > > I tried setting the owner of the collection as you said but using the > > webDAV client I got: > > > > $ propget john owner > > Getting properties '/slide/files/john': /slide/users/<D:href > > xmlns:D='DAV:'>/users/john</D:href> > > > > I switched back to the other way and put some debug lines in the > > matchOwner method of ACLSecurityImpl and the owner of the resource is > > being recognized fine so that's not the issue. > > > > I added some additional debug lines to gather some more information. > > Here is my test scenario: > > > > /actions/write is granted to "owner" of /files and is inheritable > > The /files/john collection has an "owner" set to /users/john > > The /files/john collection is empty > > I am authenticated as john > > I try to PUT test.txt into /files/john > > > > In this scenario I get a 403. I put in some debug lines and found > that > > the 403 is being thrown because the security implementation is trying > to > > enforce /actions/write privileges for /users/john on > > /files/john/test.txt which does not exist yet. This behavior doesn't > > jive with the method privilege table in the webDAV access control > > extension > > > (http://greenbytes.de/tech/webdav/draft-ietf-webdav-acl-latest.html#rfc. > > section.B) > > Which says that when doing a PUT and the target resource does not > > exist, you need <D:bind> privileges on the parent collection of the > > target. Using these guidelines, in my scenario the PUT should succeed > > by virtue of john having /actions/write privileges on the parent > > directory /files/john. > > > > Is this a bug in the implementation? Would an alternative be to set > the > > owner on the new resource prior to the security checks? Any other > > thoughts? Thanks in advance. > > > > Jason > > > > -----Original Message----- > > From: James Mason [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, November 17, 2004 11:37 PM > > To: Slide Users Mailing List > > Subject: RE: write privileges for owner > > > > The "owner" property should be an href referencing the URI of a > > principal in the system, eg: <D:href>/users/john</D:href>. Check out > the > > group-member-set properties of the various roles for examples. > > > > -James > > > > On Wed, 2004-11-17 at 21:18 -0500, Jason McElravy wrote: > > > Oliver, > > > > > > Thanks for the tip on the users collection. As an alternative, > > > I created a "john" collection under /files using the following > > > configuration: > > > > > > <objectnode classname="org.apache.slide.structure.SubjectNode" > > > uri="/files"> > > > <permission action="all" subject="unauthenticated" > > > inheritable="true" negative="true"/> > > > <permission action="/actions/write" subject="owner" > > > inheritable="true"/> > > > <permission action="/actions/read-acl" subject="owner" > > > inheritable="true"/> > > > <permission action="/actions/write-acl" subject="owner" > > > inheritable="true"/> > > > > > > <objectnode classname="org.apache.slide.structure.SubjectNode" > > > uri="/files/john"> > > > <revision> > > > <property namespace="DAV:" > > > name="owner">john</property> > > > </revision> > > > </objectnode> > > > </objectnode> > > > > > > Unfortunately, I still get a 403 when I try to PUT a file into the > > john > > > collection even though I'm authenticated as john and john is the > owner > > > of the collection. Can anyone offer any clarification as to why > this > > is > > > the behavior? I would also welcome alternative suggestions for an > > > easily maintainable solution to setting up "home" directories for > > users. > > > Thanks in advance. > > > > > > -Jason > > > > > > > > > -----Original Message----- > > > From: Oliver Zeigermann [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 17, 2004 6:06 PM > > > To: Slide Users Mailing List > > > Subject: Re: write privileges for owner > > > > > > Jason, the collections in users should not be used to store data. > > > These are not supposed to be the home directory of the specific > user, > > > but are the representation of the user itself. > > > > > > Oliver > > > > > > > > > On Wed, 17 Nov 2004 13:54:59 -0500, Jason McElravy > > > <[EMAIL PROTECTED]> wrote: > > > > I am hoping to get some clarification on a security configuration > > for > > > > slide. I want each user on my server to have write privileges in > > his > > > > "home" directory. To test this I tried to alter the default > > > domain.xml > > > > configuration so john could write to /slide/users/john. I tried > > > > granting /actions/write to subject owner on /users and set > > > > inheritable="true". Here is the snippet: > > > > > > > > <objectnode classname="org.apache.slide.structure.SubjectNode" > > > > uri="/users"> > > > > <permission action="/actions/write" subject="owner" > > > > inheritable="true"/> > > > > <permission action="/actions/write-acl" subject="owner" > > > > inheritable="true"/> > > > > <permission action="/actions/read-acl" subject="owner" > > > > inheritable="true"/> > > > > <permission action="all" subject="unauthenticated" > > > > inheritable="true" negative="true"/> > > > > > > > > I set john as the owner of the john directory like this: > > > > > > > > <objectnode classname="org.apache.slide.structure.SubjectNode" > > > > uri="/users/john"> > > > > > > > > <revision> > > > > <property > > namespace="http://jakarta.apache.org/slide/" > > > > name="password">john</property> > > > > <property namespace="DAV:" > > > name="owner">john</property> > > > > </revision> > > > > </objectnode> > > > > > > > > I am able to modify the properties of /users/john under this when > > > > authenticated as john using this configuration but I get a 403 > when > > I > > > > try to PUT a file in that directory. It works if /actions/write > is > > > > granted to /roles/user instead of owner for the /users uri but > that > > > > doesn't meet my requirements. I want to avoid having to maintain > > > write > > > > permissions for each user to their home directory like this: > > > > > > > > <objectnode classname="org.apache.slide.structure.SubjectNode" > > > > uri="/users/john"> > > > > <permission action="/actions/write" subject="/users/john" > > > > inheritable="true"/> > > > > > > > > What am I missing in regard to granting write permissions to the > > > owner > > > > of a resource? Thanks in advance for your help. I am using > > > > slide-server 2.1b2 and webdavclient 2.1b1. > > > > > > > > -Jason > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]