Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-25 Thread alon salant
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?

2004-08-26 Thread alon salant
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?

2004-08-27 Thread alon salant
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?

2004-08-29 Thread alon salant
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?

2004-08-31 Thread alon salant
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?

2004-08-31 Thread alon salant
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?

2004-09-01 Thread alon salant
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?

2004-09-03 Thread alon salant
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?

2004-09-06 Thread alon salant
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?

2004-09-07 Thread alon salant
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?

2004-09-08 Thread alon salant
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?

2004-09-11 Thread alon salant
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

2004-09-12 Thread alon salant
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

2004-09-13 Thread alon salant
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

2004-09-14 Thread alon salant
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

2004-09-14 Thread alon salant
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

2004-09-15 Thread alon salant
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

2004-11-30 Thread alon salant
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?

2007-11-22 Thread Alon Salant
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]