Can WebDAV servlet serve non-slide-managed filesystem?
I've been reading the slide docs, have set up the slide server and have WebDAV working for accessing files in slide. I have been unable to definitively answer the following question. Hopefully someone on this list can answer it. Can the slide WebDAV servlet be configured to serve an existing directory on the filesystem? What I have found is that you can set up a slide filestore and store files in it, but you cannot create a slide filestore from an existing filesystem directory. Slide needs to store all kinds of metadata to do its job and the webdav servlet can only serve a slide filestore. Is this right? If not, what would I need to do to get the slide webdav servlet serving say, /home/alon/public_html/, where I have a bunch of directories and files in that location already? I understand that a limited set of the WebDAV protocol will be supported. I've also looked at the tomcat webdav servlet but it has several issues. First, it can only serve the webapp root in which it is loaded. It is also dependent on many tomcat core classes. I would like to be able to deploy on a range of application servers. Thanks, Alon - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
Thanks for confirming my understanding. I'm hoping to have WebDAV running within my webapp because I already manage user authentication in Java and would like to apply the same container-managed security my WebDAV implementation. I'm actually surprised not to find a simple webdav servlet impementation independent of application server platform or framework (slide). Alon On Wed, 25 Aug 2004 22:46:05 -0700, James Mason <[EMAIL PROTECTED]> wrote: > Alon, > > I can't think of any way to get Slide to do this (maybe someone else > can, though). The TxFile Store implementation uses xml files to store > the structure of the repository, so I don't see any way to get this to > use an existing structure in the filesystem. > > You could write a really Store implementation that either ignores > metadata or stores it in some sort of .meta file. > > You might also look into using Apache HTTP Server's mod_dav module. It > should do what you need and is very cross-platform. > > -James > > > > alon salant wrote: > > I've been reading the slide docs, have set up the slide server and > > have WebDAV working for accessing files in slide. > > > > I have been unable to definitively answer the following question. > > Hopefully someone on this list can answer it. > > > > Can the slide WebDAV servlet be configured to serve an existing > > directory on the filesystem? > > > > What I have found is that you can set up a slide filestore and store > > files in it, but you cannot create a slide filestore from an existing > > filesystem directory. Slide needs to store all kinds of metadata to do > > its job and the webdav servlet can only serve a slide filestore. Is > > this right? > > > > If not, what would I need to do to get the slide webdav servlet > > serving say, /home/alon/public_html/, where I have a bunch of > > directories and files in that location already? I understand that a > > limited set of the WebDAV protocol will be supported. > > > > I've also looked at the tomcat webdav servlet but it has several > > issues. First, it can only serve the webapp root in which it is > > loaded. It is also dependent on many tomcat core classes. I would like > > to be able to deploy on a range of application servers. > > > > Thanks, > > > > Alon > > > > - > > 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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
I'm definitely game to try. http://jakarta.apache.org/slide/javadoc/org/apache/slide/store/Store.html Are we talking about implementing the Store interface with no-ops for many of the methods? Alon On Thu, 26 Aug 2004 23:43:39 -0700, James Mason <[EMAIL PROTECTED]> wrote: > Alon, > I know what you mean. You know if you're not needing anything fancy it > shouldn't be that hard to write a really simple filesystem Store for > Slide. You could probably ignore locking, metadata, security and > transactions, and since those are the complicated bits it should go > quite fast :). I can try to walk you through it if you're interested. > > -James > > > > alon salant wrote: > > Thanks for confirming my understanding. > > > > I'm hoping to have WebDAV running within my webapp because I already > > manage user authentication in Java and would like to apply the same > > container-managed security my WebDAV implementation. I'm actually > > surprised not to find a simple webdav servlet impementation > > independent of application server platform or framework (slide). > > > > Alon > > > > On Wed, 25 Aug 2004 22:46:05 -0700, James Mason <[EMAIL PROTECTED]> wrote: > > > >>Alon, > >> > >>I can't think of any way to get Slide to do this (maybe someone else > >>can, though). The TxFile Store implementation uses xml files to store > >>the structure of the repository, so I don't see any way to get this to > >>use an existing structure in the filesystem. > >> > >>You could write a really Store implementation that either ignores > >>metadata or stores it in some sort of .meta file. > >> > >>You might also look into using Apache HTTP Server's mod_dav module. It > >>should do what you need and is very cross-platform. > >> > >>-James > >> > >> > >> > >>alon salant wrote: > >> > >>>I've been reading the slide docs, have set up the slide server and > >>>have WebDAV working for accessing files in slide. > >>> > >>>I have been unable to definitively answer the following question. > >>>Hopefully someone on this list can answer it. > >>> > >>>Can the slide WebDAV servlet be configured to serve an existing > >>>directory on the filesystem? > >>> > >>>What I have found is that you can set up a slide filestore and store > >>>files in it, but you cannot create a slide filestore from an existing > >>>filesystem directory. Slide needs to store all kinds of metadata to do > >>>its job and the webdav servlet can only serve a slide filestore. Is > >>>this right? > >>> > >>>If not, what would I need to do to get the slide webdav servlet > >>>serving say, /home/alon/public_html/, where I have a bunch of > >>>directories and files in that location already? I understand that a > >>>limited set of the WebDAV protocol will be supported. > >>> > >>>I've also looked at the tomcat webdav servlet but it has several > >>>issues. First, it can only serve the webapp root in which it is > >>>loaded. It is also dependent on many tomcat core classes. I would like > >>>to be able to deploy on a range of application servers. > >>> > >>>Thanks, > >>> > >>>Alon > >>> > >>>- > >>>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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
Okay, I've started to do my homework with the 2.1b1 source and javadoc and have a few questions. When you say "You should be able to use the Memory stores (also 2.1) for the other *Store interface that you don't implement." I'm not sure what you mean. Which stores are these? And how are you suggesting that I use them? In my final domain configuration or somehow in my implementation? It looks like I can extend AbstractServiceBase for some of the service basics. I'll no-op the XAResource methods. I assume that I don't want to extend AbstractService b/c of its XAResource implementation. It looks like I'm should implement NodeStore to manage directories. Correct? createObject( ), removeObject( ), retrieveObject( ) seem obvious. storeObject( ) is less so. I'm not sure what an update to a folder would mean. Is this safe to no-op? Is SubjectNode an appropriate ObjectNode implementation to return from retrieveObject( )? Do I add the directory contents (files and directories) as SubjectNode children themselves? For ContentStore, create/remove/retrieve/storeRevisionContent seems like straightforward file operations. Anything I should look out for here? What is a good way to test my implementation? Plug it in to my Domain.xml file and see if it works? Anything better than that? Thanks for your help, Alon On Fri, 27 Aug 2004 17:02:06 -0700, James Mason <[EMAIL PROTECTED]> wrote: > NodeStore and ContentStore should be enough for what you're wanting. You > may also need to implement NodeRevisionDescriptorsStore (note the extra > 's'), but that one's a gimme. > > Take a look at the JNDIPrincipalStore from the 2.1 milestones for an > example of Store that doesn't implement most of the features :). You > should be able to use the Memory stores (also 2.1) for the other *Store > interface that you don't implement. This will let you have the other > features, the data just won't persist between restarts. > > > > -James > > alon salant wrote: > > I'm definitely game to try. > > > > http://jakarta.apache.org/slide/javadoc/org/apache/slide/store/Store.html > > > > Are we talking about implementing the Store interface with no-ops for > > many of the methods? > > > > Alon > > > > On Thu, 26 Aug 2004 23:43:39 -0700, James Mason <[EMAIL PROTECTED]> wrote: > > > >>Alon, > >>I know what you mean. You know if you're not needing anything fancy it > >>shouldn't be that hard to write a really simple filesystem Store for > >>Slide. You could probably ignore locking, metadata, security and > >>transactions, and since those are the complicated bits it should go > >>quite fast :). I can try to walk you through it if you're interested. > >> > >>-James > >> > >> > >> > >>alon salant wrote: > >> > >>>Thanks for confirming my understanding. > >>> > >>>I'm hoping to have WebDAV running within my webapp because I already > >>>manage user authentication in Java and would like to apply the same > >>>container-managed security my WebDAV implementation. I'm actually > >>>surprised not to find a simple webdav servlet impementation > >>>independent of application server platform or framework (slide). > >>> > >>>Alon > >>> > >>>On Wed, 25 Aug 2004 22:46:05 -0700, James Mason <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>>Alon, > >>>> > >>>>I can't think of any way to get Slide to do this (maybe someone else > >>>>can, though). The TxFile Store implementation uses xml files to store > >>>>the structure of the repository, so I don't see any way to get this to > >>>>use an existing structure in the filesystem. > >>>> > >>>>You could write a really Store implementation that either ignores > >>>>metadata or stores it in some sort of .meta file. > >>>> > >>>>You might also look into using Apache HTTP Server's mod_dav module. It > >>>>should do what you need and is very cross-platform. > >>>> > >>>>-James > >>>> > >>>> > >>>> > >>>>alon salant wrote: > >>>> > >>>> > >>>>>I've been reading the slide docs, have set up the slide server and > >>>>>have WebDAV working for accessing files in slide. > >>>>> > >>>>>I have been unable to definitively answer the following
Re: Can WebDAV servlet serve non-slide-managed filesystem?
I've decided to take an initial step of stubbing out my SimpleFileStore implementation and deploying it in my webapp. I started with the Domain.sample file from the 2.1b1 distribution and modified the namespace definition as follows: store/metadata store/content SimpleFileStore implements NodeStore and ContentStore. This configuration deploys without error. > > Is SubjectNode an > > appropriate ObjectNode implementation to return from retrieveObject( > > )? > > Yes. I did find that retrieveObject( ) needs to return an ActionNode not SubjectNode for NamespaceConfig.getActionNode( ) which was being called in slide startup. I was getting a ClassCastException. So should I always return an ActionNode from retrieveObject( )? What's the difference from a SubjectNode? I have the slide WebDAV servlet configured and starting up without errors and with directory browsing turned on. However, when I browse to the servlet url, I get a 403 and a single log line from slide: http-8080-Processor25, 30-Aug-2004 23:43:47, unauthenticated, GET, 403 "Forbidden", 47 ms, / Note that I have not removed the sample namespace configuration or data from the Domain.sample file that I started with. Reading this file, I'm not sure what is necessary and what does not apply. I'm guessing that most of the configuration is necessary and that the info in the data element can go. Correct? Any thoughts on how to get past my 403? Alon - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
Okay, I've partially answered one of my questions. Playing around and reading the config more carefully, I replaced the sample data element configuration with and can now directory browse through the webdav servlet. All I see is an empty root directory which is what I expect based on my initial SimpleFileStore implementation. Mapping a web folder from win xp is claiming that "the folder you entered does not appear to be valid" but I have not looked in to this yet. I am curious to know what of of the namespace configuration element is required for what I am trying to do. Alon On Tue, 31 Aug 2004 00:06:29 -0700, alon salant <[EMAIL PROTECTED]> wrote: > I've decided to take an initial step of stubbing out my > SimpleFileStore implementation and deploying it in my webapp. > > I started with the Domain.sample file from the 2.1b1 distribution and > modified the namespace definition as follows: > > > > > store/metadata > > > store/content > > classname="org.apache.slide.store.mem.TransientSecurityStore"/> > > classname="org.apache.slide.store.mem.TransientDescriptorsStore"/> > classname="org.apache.slide.store.mem.TransientDescriptorStore"/> > > > > > SimpleFileStore implements NodeStore and ContentStore. This > configuration deploys without error. > > > > Is SubjectNode an > > > appropriate ObjectNode implementation to return from retrieveObject( > > > )? > > > > Yes. > > I did find that retrieveObject( ) needs to return an ActionNode not > SubjectNode for NamespaceConfig.getActionNode( ) which was being > called in slide startup. I was getting a ClassCastException. So should > I always return an ActionNode from retrieveObject( )? What's the > difference from a SubjectNode? > > I have the slide WebDAV servlet configured and starting up without > errors and with directory browsing turned on. However, when I browse > to the servlet url, I get a 403 and a single log line from slide: > > http-8080-Processor25, 30-Aug-2004 23:43:47, unauthenticated, GET, > 403 "Forbidden", 47 ms, / > > Note that I have not removed the sample namespace configuration or > data from the Domain.sample file that I started with. Reading this > file, I'm not sure what is necessary and what does not apply. I'm > guessing that most of the configuration is necessary and that the info > in the data element can go. Correct? > > Any thoughts on how to get past my 403? > > Alon > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
Deploying an additional scope seems to work fine. It looks like I need to implement both RevisionDescriptorStore and RevisionDescriptorsStore. Deploying with the Transient versions deployed fine, but when trying to browse with the XP webdav client, I got RevisionNotFoundExceptions for the uri of the resource. So I tried just implementing RevisionDescriptorsStore.retrieveRevisionDescriptors( ) as it is in the JNDIPrincipalStore, but then I got Exceptions from TransientDescriptorStore which seems to depend on the existence of TransientDescriptorsStore (not sure about that one). So I stubbed out both RevisionDescriptorStore and RevisionDescriptorsStore. It looks like I need to implement RevisionDescriptorStore.retrieveRevisionDescriptor( ). I implemented a simple version that returns a new NodeRevisionDescriptor with its date properties set. My /files node shows up as a 0 byte file in my webdav browser, not a folder. I am not sure about how to propertly create a NodeRevisionDescriptor - which properties should be set folders, and which for files. Any hints? Am I off track here? Alon On Tue, 31 Aug 2004 09:10:36 -0700, James Mason <[EMAIL PROTECTED]> wrote: > alon, > Sorry I didn't think of this earlier. It will probably be easier, at > least initialy, to have two store configured in your domain. Leave the > default store in place with a of "/", and add your store with a > scope of "/files". This way you won't have to mess with the > section of the domain, and you won't have to worry about returning > ActionNodes. > > Once you have your store working you can decide how you want to handle > the other information. It will probably be simplest to setup some basic > permissions in your domain then map the webdav servlet to only server > the /files node, but other options are available. > > -James > > > > alon salant wrote: > > Okay, I've partially answered one of my questions. > > > > Playing around and reading the config more carefully, I replaced the > > sample data element configuration with > > > > > > > > > > > > > > > > and can now directory browse through the webdav servlet. All I see is > > an empty root directory which is what I expect based on my initial > > SimpleFileStore implementation. > > > > Mapping a web folder from win xp is claiming that "the folder you > > entered does not appear to be valid" but I have not looked in to this > > yet. > > > > I am curious to know what of of the namespace configuration element is > > required for what I am trying to do. > > > > Alon > > > > On Tue, 31 Aug 2004 00:06:29 -0700, alon salant <[EMAIL PROTECTED]> wrote: > > > >>I've decided to take an initial step of stubbing out my > >>SimpleFileStore implementation and deploying it in my webapp. > >> > >>I started with the Domain.sample file from the 2.1b1 distribution and > >>modified the namespace definition as follows: > >> > >> > >> > >> > >> store/metadata > >> > >> > >> store/content > >> > >> >>classname="org.apache.slide.store.mem.TransientSecurityStore"/> > >> > >> >>classname="org.apache.slide.store.mem.TransientDescriptorsStore"/> > >> >>classname="org.apache.slide.store.mem.TransientDescriptorStore"/> > >> > >> > >> > >> > >>SimpleFileStore implements NodeStore and ContentStore. This > >>configuration deploys without error. > >> > >> > >>>>Is SubjectNode an > >>>>appropriate ObjectNode implementation to return from retrieveObject( > >>>>)? > >>> > >>>Yes. > >> > >>I did find that retrieveObject( ) needs to return an ActionNode not > >>SubjectNode for NamespaceConfig.getActionNode( ) which was being > >>called in slide startup. I was getting a ClassCastException. So should > >>I always return an ActionNode from retrieveObject( )? What's the > >>difference from a SubjectNode? > >> > >>I have the slide WebDAV servlet configured and starting up without > >>errors and with directory browsing turned on. However, when I browse > >>to the servlet url, I get a 403 and a single log line from slide: > >> > >> http-8080-Processor25, 30-Aug-2004 23:43:47, unauthenticated, GET, > >>403 "Forbidden", 47 ms, / > >> > >>Note that I have not removed the sample namespace c
Re: Can WebDAV servlet serve non-slide-managed filesystem?
Alright. Lots of progress now. I've pretty much got things working. I first got a "virtual" store working - implemented a few of the store interface methods to support webdav browsing through a node structure simply defined in code. Definitely took a bit of fiddling to figure out what need to be returned for retrieveRevisionDescriptors and retrieveRevisionDescriptor but finally got it all set. I removed all access restrictions with an entry in : Nice. >From here it actually was straight forward to call to the filesystem to implement the needed read/write/delete implementations. But I am now finding that I get "Forbidden" messages from the WebDAV servlet for PUT, DELETE, MOVE, MKCOL methods. The only methods in my implementation that are being called when these WebDAV methods are executing are retrieveOject, retrieveRevisionDescriptor, retrieveRevisionDescriptors. Could it be something in the NodeRevisionDescriptor that I am/am not creating that is preventing this or is it authentication/ACL configuration of some kind? Do I need to set the owner on the NodeRevisionDescriptor? I get the same behavior when I map my store to the /files configuration in the Domain.sample file. But with /files mapped as it comes in Domain.sample, I do not have the same permissions problem. Do I need to exclude the scope of my store from version control in Domain.xml? I've been stepping through the code and there are tons of checks to SecurityImpl.checkPermissions( ) sometimes I see my config (listed above) in there. Alon On Wed, 01 Sep 2004 23:10:38 -0700, James Mason <[EMAIL PROTECTED]> wrote: > Forgot to point out that the value of resourcetype should be > "". > > -James > > > > James Mason wrote: > > 'twould be nice were this easier (or at least better documented). It > > looks like you're on the right track, though. > > > > I think you'll need to set the DAV:resourcetype property at a minimum. > > Relevant line from JNDIPrincipalStore: > > > > props.put( > > "DAV:resourcetype", > > new NodeProperty("resourcetype", resourceType, "DAV:", "", false)); > > > > I'm not positive, but I think the key for the hashtable (props) is > > significant. > > > > Other than that there are a few properties you'll probably want to > > return for files (size, modification date, etc). > > > > -James > > > > alon salant wrote: > > > >> Deploying an additional scope seems to work fine. > >> > >> It looks like I need to implement both RevisionDescriptorStore and > >> RevisionDescriptorsStore. Deploying with the Transient versions > >> deployed fine, but when trying to browse with the XP webdav client, I > >> got RevisionNotFoundExceptions for the uri of the resource. > >> > >> So I tried just implementing > >> RevisionDescriptorsStore.retrieveRevisionDescriptors( ) as it is in > >> the JNDIPrincipalStore, but then I got Exceptions from > >> TransientDescriptorStore which seems to depend on the existence of > >> TransientDescriptorsStore (not sure about that one). > >> > >> So I stubbed out both RevisionDescriptorStore and > >> RevisionDescriptorsStore. It looks like I need to implement > >> RevisionDescriptorStore.retrieveRevisionDescriptor( ). I implemented a > >> simple version that returns a new NodeRevisionDescriptor with its date > >> properties set. My /files node shows up as a 0 byte file in my webdav > >> browser, not a folder. > >> > >> I am not sure about how to propertly create a NodeRevisionDescriptor - > >> which properties should be set folders, and which for files. Any > >> hints? > >> > >> Am I off track here? > >> > >> Alon > >> > >> On Tue, 31 Aug 2004 09:10:36 -0700, James Mason <[EMAIL PROTECTED]> > >> wrote: > >> > >>> alon, > >>> Sorry I didn't think of this earlier. It will probably be easier, at > >>> least initialy, to have two store configured in your domain. Leave the > >>> default store in place with a of "/", and add your store with a > >>> scope of "/files". This way you won't have to mess with the > >>> section of the domain, and you won't have to worry about returning > >>> ActionNodes. > >>> > >>> Once you have your store working you can decide how you want to handle > >>> the other information. It will probably be simplest to setup some basic > >>> permissions in your domain t
Re: Can WebDAV servlet serve non-slide-managed filesystem?
http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/photospace/slide/ AbstractSimpleFileStore implements ContentStore, NodeStore, RevisionDescriptorStore, RevisionDescriptorsStore, no-ops most of the interface methods, and declares abstract those that you need to implement to get basic create/remove/update/delete for files and directories. CountdownStore presents nested directories 10 .. 1 and a file 0.txt in the directory 1. This structure is defined in code. You can get some funky things to happen by trying to change this structure through a webdav client since this implementation seems to support all operations but does not preserve state. SimpleFileStore is my effort to create a slide store that simply serves an existing filesystem directory. It's working with some minor issues that I'll get in to in a later post. I created a stripped down webapp to work on this stuff. You can check out the module "slidespace" following the instructions on http://sourceforge.net/cvs/?group_id=113626 right in to your webapps directory if you want to run the two stores. $ cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/photospace co slidespace $ cd slidespace $ ant Alon On Sun, 5 Sep 2004 17:30:22 +0530, Girish Nagaraj <[EMAIL PROTECTED]> wrote: > Alon, > > I am also working on hooking up a "database document repository" as a > store with slide. I have spent quite sometime stepping through the > TxFile store implementation and have got some idea of what goes on. > > If possible, could you please send me the "bare bones" implementation > of the store you wrote where the node structure was defined in the > code so that I can start with it. > > Thanks, > Girish > > [Quoting your mail from the archive as I have lost the original email :-( ] > > > > >alon salant wrote: > >Alright. Lots of progress now > > >I've pretty much got things working. I first got a "virtual" store > >working - implemented a few of the store interface methods to support > >webdav browsing through a node structure simply defined in code. > >Definitely took a bit of fiddling to figure out what need to be > >returned for retrieveRevisionDescriptors and > >retrieveRevisionDescriptor but finally got it all set. > > - > 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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
I'd be happy to contribute. > I was wondering where do properties go to? That I'm not sure what your question means may be enough of an answer for you. I try to map as many of the object properties as I can for retrieveRevisionDescriptor( ) but never write properties back to the filesystem - I'm not sure if there are any that I could write to the file system. It looks like I could write lastModified. Are there other properties of significance that I am leaving out? I set creationDate to the modificationDate b/c I don't have access to creationDate through java.io.File. I figure that's a better date than nothing. A couple open issues that I'd appreciate feedback on: 1. An issue I have been unable to resolve (and is perhaps related to your question) is that when I create a file through WebDAV, my WebDAV client (Win XP) does not display the file with its correct content length or modificationDate. If I force a refresh of the directory display, I see the correct values. Any thoughts on this? 2. Caching - it looks like slide uses ehcache. Is it possible to control the cache parameters? How? I find that my WebDAV client does not consistently pick up changes to the filesystem backing the store. That is, changes that take place directly on the filesystem. 3. Resource type for createObject( ) - see the javadoc comment in the SimpleFileStore implementation. Basically, I always create a directory in createObject( ) b/c I can't tell if the object is supposed to be a file or collection. Only once storeRevisionContent( ) is called do I know that the object is supposed to be a file - so I remove the directory and create the file with the content. This seems like an odd way to handle this but I'm not sure of an alternative. Alon On Tue, 07 Sep 2004 08:48:29 +0200, Oliver Zeigermann <[EMAIL PROTECTED]> wrote: > Hi Alon! > > This looks like nice work. I was wondering where do properties go to? Or > do you only map resource type, content length and dates as done in > SimpleFileStore (you seem to mix up creation and modification time there?). > > Anyway, wouldn't you consider donating this store implementation to the > Slide community? This way more people could benift and maybe contribute > to it? > > Oliver > > > > alon salant wrote: > > http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/photospace/slide/ > > > > AbstractSimpleFileStore implements ContentStore, NodeStore, > > RevisionDescriptorStore, RevisionDescriptorsStore, no-ops most of the > > interface methods, and declares abstract those that you need to > > implement to get basic create/remove/update/delete for files and > > directories. > > > > CountdownStore presents nested directories 10 .. 1 and a file 0.txt in > > the directory 1. This structure is defined in code. You can get some > > funky things to happen by trying to change this structure through a > > webdav client since this implementation seems to support all > > operations but does not preserve state. > > > > SimpleFileStore is my effort to create a slide store that simply > > serves an existing filesystem directory. It's working with some minor > > issues that I'll get in to in a later post. > > > > I created a stripped down webapp to work on this stuff. You can check > > out the module "slidespace" following the instructions on > > http://sourceforge.net/cvs/?group_id=113626 right in to your webapps > > directory if you want to run the two stores. > > > > $ cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/photospace co slidespace > > $ cd slidespace > > $ ant > > > > Alon - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
Either/both sound fine. I'd like to resolve the issue with not seeing length and modificationDate when creating a file, but I've honestly had enough of tracing through slide. Maybe I'll get to it later on. If you have some good direction about what I am missing, I will certainly add it in. Regarding your questions: for files I see no modificationDate and a 0 byte file size, for folders just no modificationDate. This is in my Win XP DAV client. I thought that maybe I need to update these properties in the NodeRevisionDescriptor passed in to storeRevisionContent( ) but this did not seem to do the trick. Regarding contributing, I just added some basic docs to my implementation so they are ready to go. How do you want to do this? I assume they need a minor refactor to go in the org.apache.slide.store package namespace. Where do you want to put em? An existing package? org.apache.slide.store.file? Alon On Tue, 07 Sep 2004 23:10:20 +0200, Oliver Zeigermann <[EMAIL PROTECTED]> wrote: > If you need any help, especially with issue 1, or are ready to > contribute the store, let me know... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=31177 There you go. For anyone reading earlier emails in this thread, I moved the photospace.slide.* source to org.apache.slide.store.file in the sourceforge CVS: http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/apache/slide/store/file You can still check out the slidespace module to get a simple webapp that deploys the SimpleFileStore store. Alon On Thu, 09 Sep 2004 08:31:01 +0200, Oliver Zeigermann <[EMAIL PROTECTED]> wrote: > The package name org.apache.slide.store.file sounds good to me. Be sure > to have the Apache license in all headers when you contribute the files, > please. Might be best to create an issue in bugzilla and attach the > files. I will check them in to the CVS then... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Embedding Slide in Spring Application
I found the following note in the mailing list archives. I'm wondering if someone can elaborate on "using EmbeddedDomain to expose Slide's server API as a Spring-managed bean". I'm finding that I want to configure a namespace from configuration available within my Spring application. Either I need to give my store access to the Spring application context (it's in my webapp context) or inject my config from Spring in to my store. Any thoughts on the best way to do this? Alon From: Ben Alex Subject: OutOfMemoryError with large files and Postgres Date: Tue, 04 May 2004 07:35:27 -0700 PS: Further to my earlier email, I had good success integrating with Slide's security and also using EmbeddedDomain to expose Slide's server API as a Spring-managed bean. Thanks to the Slide developers for making it so easy to integrate! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Problem disabling slide authorization
When working on SimpleFileStore, it was easy to disable Slide security by setting org.apache.slide.security=false in slide.properties. However, I do want to be able configure basic webapp security using security constraints on paths and HTTP methods. But I do not want to manage users and roles within slide. So I have slide configured with security=false, SimpleFileStore, TransientSecurityStore, and TransientLockStore for my store implementations, all user and role definitions removed from Domain.xml and basic auth configured in my web.xml for the path to the webdav servlet. With this config, I can connect via webdav, log in and browse. However, I cannot create files or folders, copy, move, delete The problem that I am running in to is that Methods (MkcolMethod for example), still try to authorize the current principal. If the principal is null, things work fine b/c SecurityImpl returns SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if the principal is not null (it is not when the webapp makes the user log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for that user resulting in an ObjectNotFoundException. This looks like hard behavior to change (unfortunately). AbstractWebDavMethod creates the SlideToken with the user principal in run( ) using req.getUserPrincipal(). I haven't traced through the other methods to see if/how the user principal is used. It looks like copy/delete/put/move/mkcol (at least) all have issues related to this. Any thoughts? What I am trying to do seems like a pretty common use case. Is there a good way to address this need? I'm hoping I've missed something simple. Alon - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem disabling slide authorization
With a little digging, I appear to have a solution. It looks like you can set your own implementation of Security in Domain.xml with . I created an AllowAllSecurityImpl that does its best to be okay with everything. The only method I really implemented is getPrincipal(SlideToken token) which returns SubjectNode.UNAUTHORIZED if there is no user principal in the SlideToken, or a SubjectNode with the principal name as the path if there is a principal. So I configure my domain to load it with: org.apache.slide.store.file.AllowAllSecurityImpl http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/apache/slide/store/file/ Seems to work for me. Any comments or gotchas I may have missed? Alon On Mon, 13 Sep 2004 23:41:17 -0700, alon salant <[EMAIL PROTECTED]> wrote: > When working on SimpleFileStore, it was easy to disable Slide security > by setting > > org.apache.slide.security=false > > in slide.properties. > > However, I do want to be able configure basic webapp security using > security constraints on paths and HTTP methods. But I do not want to > manage users and roles within slide. > > So I have slide configured with security=false, SimpleFileStore, > TransientSecurityStore, and TransientLockStore for my store > implementations, all user and role definitions removed from Domain.xml > and basic auth configured in my web.xml for the path to the webdav > servlet. > > With this config, I can connect via webdav, log in and browse. > > However, I cannot create files or folders, copy, move, delete > > The problem that I am running in to is that Methods (MkcolMethod for > example), still try to authorize the current principal. If the > principal is null, things work fine b/c SecurityImpl returns > SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if > the principal is not null (it is not when the webapp makes the user > log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for > that user resulting in an ObjectNotFoundException. > > This looks like hard behavior to change (unfortunately). > AbstractWebDavMethod creates the SlideToken with the user principal in > run( ) using req.getUserPrincipal(). > > I haven't traced through the other methods to see if/how the user > principal is used. It looks like copy/delete/put/move/mkcol (at least) > all have issues related to this. > > Any thoughts? What I am trying to do seems like a pretty common use > case. Is there a good way to address this need? I'm hoping I've missed > something simple. > > Alon > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem disabling slide authorization
So after letting this sit for just a little bit, it strikes me that this may be considered a bug in SecurityImpl (or the calling Method implementations). The Methods are calling getPrincipal() so that they can set the owner metadata in the node being created. When security is off but webapp security is on, there is a Principal in the CredentialsToken but it does not exist in the store. So you get an ObjectNotFoundException. If SecurityImpl finds a Principal in the CredentialsToken but not in the NodeStore, why not return a SubjectNode with the principal name as the path? Or do this if slide security is disabled? Alon On Tue, 14 Sep 2004 00:24:16 -0700, alon salant <[EMAIL PROTECTED]> wrote: > With a little digging, I appear to have a solution. > > It looks like you can set your own implementation of Security in > Domain.xml with . > > I created an AllowAllSecurityImpl that does its best to be okay with > everything. The only method I really implemented is > getPrincipal(SlideToken token) which returns SubjectNode.UNAUTHORIZED > if there is no user principal in the SlideToken, or a SubjectNode with > the principal name as the path if there is a principal. > > So I configure my domain to load it with: > > > name="acl_semantics">org.apache.slide.store.file.AllowAllSecurityImpl > > > http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/apache/slide/store/file/ > > Seems to work for me. Any comments or gotchas I may have missed? > > Alon > > > > > On Mon, 13 Sep 2004 23:41:17 -0700, alon salant <[EMAIL PROTECTED]> wrote: > > When working on SimpleFileStore, it was easy to disable Slide security > > by setting > > > > org.apache.slide.security=false > > > > in slide.properties. > > > > However, I do want to be able configure basic webapp security using > > security constraints on paths and HTTP methods. But I do not want to > > manage users and roles within slide. > > > > So I have slide configured with security=false, SimpleFileStore, > > TransientSecurityStore, and TransientLockStore for my store > > implementations, all user and role definitions removed from Domain.xml > > and basic auth configured in my web.xml for the path to the webdav > > servlet. > > > > With this config, I can connect via webdav, log in and browse. > > > > However, I cannot create files or folders, copy, move, delete > > > > The problem that I am running in to is that Methods (MkcolMethod for > > example), still try to authorize the current principal. If the > > principal is null, things work fine b/c SecurityImpl returns > > SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if > > the principal is not null (it is not when the webapp makes the user > > log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for > > that user resulting in an ObjectNotFoundException. > > > > This looks like hard behavior to change (unfortunately). > > AbstractWebDavMethod creates the SlideToken with the user principal in > > run( ) using req.getUserPrincipal(). > > > > I haven't traced through the other methods to see if/how the user > > principal is used. It looks like copy/delete/put/move/mkcol (at least) > > all have issues related to this. > > > > Any thoughts? What I am trying to do seems like a pretty common use > > case. Is there a good way to address this need? I'm hoping I've missed > > something simple. > > > > Alon > > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem disabling slide authorization
I saw the Security implementation that does this when looking through the source code. Won't this create nodes for my users and roles in my NodeStore? Since I am using an existing file system to back my NodeStore this would not be an option for me. Thanks, Alon On Wed, 15 Sep 2004 13:29:44 +0530, Ritu Kedia <[EMAIL PROTECTED]> wrote: > Alon, > > Your problem could be solved by turning auto-create-user on in domain.xml > (true) > This would ensure that if the principal is not already there in slide db > then one would be created prior to executing the requested method. > > Hope this helps. > > Regards, > Ritu > > > > -Original Message- > From: alon salant [mailto:[EMAIL PROTECTED] > Sent: Tuesday, September 14, 2004 10:06 PM > To: Slide Users Mailing List > Cc: [EMAIL PROTECTED] > Subject: Re: Problem disabling slide authorization > > So after letting this sit for just a little bit, it strikes me that > this may be considered a bug in SecurityImpl (or the calling Method > implementations). The Methods are calling getPrincipal() so that they > can set the owner metadata in the node being created. When security is > off but webapp security is on, there is a Principal in the > CredentialsToken but it does not exist in the store. So you get an > ObjectNotFoundException. > > If SecurityImpl finds a Principal in the CredentialsToken but not in > the NodeStore, why not return a SubjectNode with the principal name as > the path? Or do this if slide security is disabled? > > Alon > > On Tue, 14 Sep 2004 00:24:16 -0700, alon salant <[EMAIL PROTECTED]> wrote: > > With a little digging, I appear to have a solution. > > > > It looks like you can set your own implementation of Security in > > Domain.xml with . > > > > I created an AllowAllSecurityImpl that does its best to be okay with > > everything. The only method I really implemented is > > getPrincipal(SlideToken token) which returns SubjectNode.UNAUTHORIZED > > if there is no user principal in the SlideToken, or a SubjectNode with > > the principal name as the path if there is a principal. > > > > So I configure my domain to load it with: > > > > > > name="acl_semantics">org.apache.slide.store.file.AllowAllSecurityImpl eter> > > > > > > > http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/ > apache/slide/store/file/ > > > > Seems to work for me. Any comments or gotchas I may have missed? > > > > Alon > > > > > > > > > > On Mon, 13 Sep 2004 23:41:17 -0700, alon salant <[EMAIL PROTECTED]> wrote: > > > When working on SimpleFileStore, it was easy to disable Slide security > > > by setting > > > > > > org.apache.slide.security=false > > > > > > in slide.properties. > > > > > > However, I do want to be able configure basic webapp security using > > > security constraints on paths and HTTP methods. But I do not want to > > > manage users and roles within slide. > > > > > > So I have slide configured with security=false, SimpleFileStore, > > > TransientSecurityStore, and TransientLockStore for my store > > > implementations, all user and role definitions removed from Domain.xml > > > and basic auth configured in my web.xml for the path to the webdav > > > servlet. > > > > > > With this config, I can connect via webdav, log in and browse. > > > > > > However, I cannot create files or folders, copy, move, delete > > > > > > The problem that I am running in to is that Methods (MkcolMethod for > > > example), still try to authorize the current principal. If the > > > principal is null, things work fine b/c SecurityImpl returns > > > SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if > > > the principal is not null (it is not when the webapp makes the user > > > log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for > > > that user resulting in an ObjectNotFoundException. > > > > > > This looks like hard behavior to change (unfortunately). > > > AbstractWebDavMethod creates the SlideToken with the user principal in > > > run( ) using req.getUserPrincipal(). > > > > > > I haven't traced through the other methods to see if/how the user > > > principal is used. It looks like copy/delete/put/move/mkcol (at least) > > > all have issues related to this. > > > > > > Any thoughts? What I am trying to do seems like a pretty common use > > > case. Is there a good way to address this need? I'm hoping I've missed > > > something simple. > > > > > > Alon > > > > > > > - > 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]
problem: OS X mounting webdav as read only
I've searched the archives and found some recent discussion around this but no great diagnostics or resolution. I'll do what I can to be helpful... My setup: I have slide running embedded in my own web application running on Tomcat 5. I built slide from CVS Nov 5. I have disabled authentication in slide and am using container-managed security for authentication (HTTP basic). I am using TransientLockStore and TransientSecurityStore and SimpleFileStore for the other stores. My problem: With my Win2k webdav client, I can use my webdav share with the ability to do all actions. On OS X 10.3.6, I can mount my webdav share but it mounts read only. I see that there are people who are having more success with OS X on this mailing list so I'm curious what could be different. I've tried: I've tried toggling lockdiscoveryIncludesPrincipalURL and get the same behavior. I tried a new build from the latest changes in CVS (I saw a post saying that recent changes may have fixed OS X issues) but ran in to showstopper issues with both webdav clients. (I'll provide info in another email.) I turned on debugging but see the same log entries for both the working win2k client and read-only OS X client. Goliath 1.0.1 seems to work great. I'm happy to provide more info. It doesn't look like webdavfs can be configured to run through a proxy so is tcpdump the call? Alon - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Alternative webdav client api?
We have found the slide client to be stable and free of issues. I would not immediately assume that it is not a good option because the development effort has been retired. Alon On 11/21/07, Florian Kirchhoff <[EMAIL PROTECTED]> wrote: > > Hi, > > the retirement announcement for Slide, mentions Jackrabbit as an alternative > to slide. > I am mostly interested in using the api to access an existing WebDav > repository, but > it seems Jackrabbit is mostly focused on the server side of webdav, not the > client. > > Is there a natural migration path for my situation? > > Thanks in advance for any help, > > Florian > -- > View this message in context: > http://www.nabble.com/Alternative-webdav-client-api--tf4852654.html#a13885439 > Sent from the Jakarta Slide - User mailing list archive at Nabble.com. > > > - > 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]