You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by Oliver Zeigermann <ol...@zeigermann.de> on 2004/10/12 11:17:54 UTC

WCK: WebDAV Construction Kit

Folks,

if things work out the way I plan I will add the WebDAV Construction Kit 
to the proposals section of the Slide CVS HEAD today.

It contains classes that help you to make your proprietary system WebDAV 
aware without much knowledge of either Slide and then also WebDAV to an 
extend that it should work with the usual Windows, Mac and Linux clients.

It emerged out of the experience that Slide's storing system is most 
flexible and generic, but too complex for many people who just want to 
add the WebDAV interface to their systems. Additionally, it contains a 
JAAS login module that allows you to bypass Slide's user managerment and 
the complete internal access checking. All this is done by your 
proprietary system. This, however, is optional to you.

All this is the largest hack I have ever done as it relies on many 
implementation details and sequences of calls - at least it should be 
the standard hack that will be maintained and adapted to Slide as we go 
along. It is important to understand that all this works only when you 
access Slide through its WebDAV interface and only if you restrict 
yourself to the core WebDAV methods. It is likely not to work when you 
use the native Slide interface. It will not work with ACL, BIND, SEARCH 
and DeltaV methods.

The main interfaces
-------------------

To make Slide work as your WebDAV layer you will have to implement a 
single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
contains some call back methods which do not use any Slide classes 
except for the exceptions, which I thought are pretty obvious and thus 
it would have been silly to more or less clone them. Here they are for a 
short reference - the complete ones I will check in will have much more 
detailed documentation:

- begin, commit, rollback: begins, commits, aborts a request / transaction
- objectExists, isFolder, isResource: existence checks, collection vs. 
content checks
- createFolder, createResource: creation of a collection or a content 
resource
- removeObject: deletion of a collection or a content resource
- setResourceContent, getResourceContent: storing and retrieval of a 
content resource
- getLastModified, getCreationDate, getResourceLength: retrieval of 
basic meta data
- getChildrenNames: retrieval of the children of a collection

This is all Slide and WCK need to make basic WebDAV operations work. 
There are optional extension interfaces that add full property access 
and locking if your system supports them.

The second main interface is even simpler and allows you to login into 
Slide using your proprietary user database. The glue code will pass 
session and connection information to your store as well. All this 
allows to effectively bypass Slide's security code and leave this to 
your system. All you have to implement are three methods of the 
org.apache.slide.simple.authentication.SessionAuthenticationManager.

- getAuthenticationSession (2x one with user/password one with user 
only): asks if a certain user exists and authenticated itseld correctly 
and if so an object that allows access to your system, i.e. a session or 
connection or anything similiar, is passed back; in case the user has 
already authenticated correctly before only the user with no password is 
passed
- closeAuthenticationSession: closes the session / terminates the 
connection to your system

Using this interface the glue code finds out if a user exists and 
authenticated itself correctly and passes all relevant information to 
the basic WebDAV store for you to make authenticated requests to your 
system later. All this is optional, you still can use Slide's internal 
security with your WebDAV store if this is not appropriate for you. For 
your convenience there also is a connection pool available.

Reference Implementation
------------------------

For the store, the session manager and the pooling connection manager 
there are reference implementations to the file system to help you get 
going. However, the ones for sessions and connection management are 
dummies only as the file system neither needs sessions nor connections.
The reference implementation of the store part and also parts of the 
glue code are heavily inspired by the work of Alon who provided the 
simple file store to us - so credit goes to Alon. The new implementation 
of the file store extends Alon's in adding arbitrary properties 
(optional) and locks (optional) and proper handling of access violations.

Building
--------

WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
and comes with a build script that creates a full working web archive to 
be deployed in Tomcat. Which one it will compile to and package with is 
to be determined in build.properties. If this isn't obvious details will 
  follow upon request. When WCK matures it might be possible to even 
release it as a distribution of its own, but this is something to discuss.

Bottom Line
-----------

What I need from you is feedback as detailed as possible if this suits 
your needs our what should be changed resp. added to make this what you 
need.

Additionally, I am pretty sure I have forgotten the most important 
parts, so remind me and ask for them, please...

Finally, have in mind this is work in progress so changes to the API are 
somewhat likely.

Have fun checking this out and cheers

Oliver

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by James Mason <ma...@apache.org>.
On Tue, 2004-10-12 at 08:48, Oliver Zeigermann wrote:
> James Mason schrieb:
> 
> > Awesome Oliver! I look forward to playing with this.
> 
> I expect to commit it later tonite my time (now it is almost 6 pm here).
> 
> > Where do you find the time? ;)
> 
> The development was funded :)

So that's the secret! :)

-James

> 
> Oliver
> 
> > -James
> > 
> > On Tue, 2004-10-12 at 02:17, Oliver Zeigermann wrote:
> > 
> >>Folks,
> >>
> >>if things work out the way I plan I will add the WebDAV Construction Kit 
> >>to the proposals section of the Slide CVS HEAD today.
> >>
> >>It contains classes that help you to make your proprietary system WebDAV 
> >>aware without much knowledge of either Slide and then also WebDAV to an 
> >>extend that it should work with the usual Windows, Mac and Linux clients.
> >>
> >>It emerged out of the experience that Slide's storing system is most 
> >>flexible and generic, but too complex for many people who just want to 
> >>add the WebDAV interface to their systems. Additionally, it contains a 
> >>JAAS login module that allows you to bypass Slide's user managerment and 
> >>the complete internal access checking. All this is done by your 
> >>proprietary system. This, however, is optional to you.
> >>
> >>All this is the largest hack I have ever done as it relies on many 
> >>implementation details and sequences of calls - at least it should be 
> >>the standard hack that will be maintained and adapted to Slide as we go 
> >>along. It is important to understand that all this works only when you 
> >>access Slide through its WebDAV interface and only if you restrict 
> >>yourself to the core WebDAV methods. It is likely not to work when you 
> >>use the native Slide interface. It will not work with ACL, BIND, SEARCH 
> >>and DeltaV methods.
> >>
> >>The main interfaces
> >>-------------------
> >>
> >>To make Slide work as your WebDAV layer you will have to implement a 
> >>single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
> >>contains some call back methods which do not use any Slide classes 
> >>except for the exceptions, which I thought are pretty obvious and thus 
> >>it would have been silly to more or less clone them. Here they are for a 
> >>short reference - the complete ones I will check in will have much more 
> >>detailed documentation:
> >>
> >>- begin, commit, rollback: begins, commits, aborts a request / transaction
> >>- objectExists, isFolder, isResource: existence checks, collection vs. 
> >>content checks
> >>- createFolder, createResource: creation of a collection or a content 
> >>resource
> >>- removeObject: deletion of a collection or a content resource
> >>- setResourceContent, getResourceContent: storing and retrieval of a 
> >>content resource
> >>- getLastModified, getCreationDate, getResourceLength: retrieval of 
> >>basic meta data
> >>- getChildrenNames: retrieval of the children of a collection
> >>
> >>This is all Slide and WCK need to make basic WebDAV operations work. 
> >>There are optional extension interfaces that add full property access 
> >>and locking if your system supports them.
> >>
> >>The second main interface is even simpler and allows you to login into 
> >>Slide using your proprietary user database. The glue code will pass 
> >>session and connection information to your store as well. All this 
> >>allows to effectively bypass Slide's security code and leave this to 
> >>your system. All you have to implement are three methods of the 
> >>org.apache.slide.simple.authentication.SessionAuthenticationManager.
> >>
> >>- getAuthenticationSession (2x one with user/password one with user 
> >>only): asks if a certain user exists and authenticated itseld correctly 
> >>and if so an object that allows access to your system, i.e. a session or 
> >>connection or anything similiar, is passed back; in case the user has 
> >>already authenticated correctly before only the user with no password is 
> >>passed
> >>- closeAuthenticationSession: closes the session / terminates the 
> >>connection to your system
> >>
> >>Using this interface the glue code finds out if a user exists and 
> >>authenticated itself correctly and passes all relevant information to 
> >>the basic WebDAV store for you to make authenticated requests to your 
> >>system later. All this is optional, you still can use Slide's internal 
> >>security with your WebDAV store if this is not appropriate for you. For 
> >>your convenience there also is a connection pool available.
> >>
> >>Reference Implementation
> >>------------------------
> >>
> >>For the store, the session manager and the pooling connection manager 
> >>there are reference implementations to the file system to help you get 
> >>going. However, the ones for sessions and connection management are 
> >>dummies only as the file system neither needs sessions nor connections.
> >>The reference implementation of the store part and also parts of the 
> >>glue code are heavily inspired by the work of Alon who provided the 
> >>simple file store to us - so credit goes to Alon. The new implementation 
> >>of the file store extends Alon's in adding arbitrary properties 
> >>(optional) and locks (optional) and proper handling of access violations.
> >>
> >>Building
> >>--------
> >>
> >>WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
> >>and comes with a build script that creates a full working web archive to 
> >>be deployed in Tomcat. Which one it will compile to and package with is 
> >>to be determined in build.properties. If this isn't obvious details will 
> >>  follow upon request. When WCK matures it might be possible to even 
> >>release it as a distribution of its own, but this is something to discuss.
> >>
> >>Bottom Line
> >>-----------
> >>
> >>What I need from you is feedback as detailed as possible if this suits 
> >>your needs our what should be changed resp. added to make this what you 
> >>need.
> >>
> >>Additionally, I am pretty sure I have forgotten the most important 
> >>parts, so remind me and ask for them, please...
> >>
> >>Finally, have in mind this is work in progress so changes to the API are 
> >>somewhat likely.
> >>
> >>Have fun checking this out and cheers
> >>
> >>Oliver
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: slide-user-help@jakarta.apache.org
> >>
> >>
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: slide-user-help@jakarta.apache.org
> > 
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by Oliver Zeigermann <ol...@zeigermann.de>.
James Mason schrieb:

> Awesome Oliver! I look forward to playing with this.

I expect to commit it later tonite my time (now it is almost 6 pm here).

> Where do you find the time? ;)

The development was funded :)

Oliver

> -James
> 
> On Tue, 2004-10-12 at 02:17, Oliver Zeigermann wrote:
> 
>>Folks,
>>
>>if things work out the way I plan I will add the WebDAV Construction Kit 
>>to the proposals section of the Slide CVS HEAD today.
>>
>>It contains classes that help you to make your proprietary system WebDAV 
>>aware without much knowledge of either Slide and then also WebDAV to an 
>>extend that it should work with the usual Windows, Mac and Linux clients.
>>
>>It emerged out of the experience that Slide's storing system is most 
>>flexible and generic, but too complex for many people who just want to 
>>add the WebDAV interface to their systems. Additionally, it contains a 
>>JAAS login module that allows you to bypass Slide's user managerment and 
>>the complete internal access checking. All this is done by your 
>>proprietary system. This, however, is optional to you.
>>
>>All this is the largest hack I have ever done as it relies on many 
>>implementation details and sequences of calls - at least it should be 
>>the standard hack that will be maintained and adapted to Slide as we go 
>>along. It is important to understand that all this works only when you 
>>access Slide through its WebDAV interface and only if you restrict 
>>yourself to the core WebDAV methods. It is likely not to work when you 
>>use the native Slide interface. It will not work with ACL, BIND, SEARCH 
>>and DeltaV methods.
>>
>>The main interfaces
>>-------------------
>>
>>To make Slide work as your WebDAV layer you will have to implement a 
>>single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
>>contains some call back methods which do not use any Slide classes 
>>except for the exceptions, which I thought are pretty obvious and thus 
>>it would have been silly to more or less clone them. Here they are for a 
>>short reference - the complete ones I will check in will have much more 
>>detailed documentation:
>>
>>- begin, commit, rollback: begins, commits, aborts a request / transaction
>>- objectExists, isFolder, isResource: existence checks, collection vs. 
>>content checks
>>- createFolder, createResource: creation of a collection or a content 
>>resource
>>- removeObject: deletion of a collection or a content resource
>>- setResourceContent, getResourceContent: storing and retrieval of a 
>>content resource
>>- getLastModified, getCreationDate, getResourceLength: retrieval of 
>>basic meta data
>>- getChildrenNames: retrieval of the children of a collection
>>
>>This is all Slide and WCK need to make basic WebDAV operations work. 
>>There are optional extension interfaces that add full property access 
>>and locking if your system supports them.
>>
>>The second main interface is even simpler and allows you to login into 
>>Slide using your proprietary user database. The glue code will pass 
>>session and connection information to your store as well. All this 
>>allows to effectively bypass Slide's security code and leave this to 
>>your system. All you have to implement are three methods of the 
>>org.apache.slide.simple.authentication.SessionAuthenticationManager.
>>
>>- getAuthenticationSession (2x one with user/password one with user 
>>only): asks if a certain user exists and authenticated itseld correctly 
>>and if so an object that allows access to your system, i.e. a session or 
>>connection or anything similiar, is passed back; in case the user has 
>>already authenticated correctly before only the user with no password is 
>>passed
>>- closeAuthenticationSession: closes the session / terminates the 
>>connection to your system
>>
>>Using this interface the glue code finds out if a user exists and 
>>authenticated itself correctly and passes all relevant information to 
>>the basic WebDAV store for you to make authenticated requests to your 
>>system later. All this is optional, you still can use Slide's internal 
>>security with your WebDAV store if this is not appropriate for you. For 
>>your convenience there also is a connection pool available.
>>
>>Reference Implementation
>>------------------------
>>
>>For the store, the session manager and the pooling connection manager 
>>there are reference implementations to the file system to help you get 
>>going. However, the ones for sessions and connection management are 
>>dummies only as the file system neither needs sessions nor connections.
>>The reference implementation of the store part and also parts of the 
>>glue code are heavily inspired by the work of Alon who provided the 
>>simple file store to us - so credit goes to Alon. The new implementation 
>>of the file store extends Alon's in adding arbitrary properties 
>>(optional) and locks (optional) and proper handling of access violations.
>>
>>Building
>>--------
>>
>>WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
>>and comes with a build script that creates a full working web archive to 
>>be deployed in Tomcat. Which one it will compile to and package with is 
>>to be determined in build.properties. If this isn't obvious details will 
>>  follow upon request. When WCK matures it might be possible to even 
>>release it as a distribution of its own, but this is something to discuss.
>>
>>Bottom Line
>>-----------
>>
>>What I need from you is feedback as detailed as possible if this suits 
>>your needs our what should be changed resp. added to make this what you 
>>need.
>>
>>Additionally, I am pretty sure I have forgotten the most important 
>>parts, so remind me and ask for them, please...
>>
>>Finally, have in mind this is work in progress so changes to the API are 
>>somewhat likely.
>>
>>Have fun checking this out and cheers
>>
>>Oliver
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: slide-user-help@jakarta.apache.org
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by Michael Oliver <ol...@sourceonenet.com>.
Wow!
James Mason said:
> Awesome Oliver! I look forward to playing with this.
>
> Where do you find the time? ;)
>
> -James
>
> On Tue, 2004-10-12 at 02:17, Oliver Zeigermann wrote:
>> Folks,
>>
>> if things work out the way I plan I will add the WebDAV Construction
>> Kit  to the proposals section of the Slide CVS HEAD today.
>>
>> It contains classes that help you to make your proprietary system
>> WebDAV  aware without much knowledge of either Slide and then also
>> WebDAV to an  extend that it should work with the usual Windows, Mac
>> and Linux clients.
>>
>> It emerged out of the experience that Slide's storing system is most
>> flexible and generic, but too complex for many people who just want to
>>  add the WebDAV interface to their systems. Additionally, it contains
>> a  JAAS login module that allows you to bypass Slide's user
>> managerment and  the complete internal access checking. All this is
>> done by your  proprietary system. This, however, is optional to you.
>>
>> All this is the largest hack I have ever done as it relies on many
>> implementation details and sequences of calls - at least it should be
>> the standard hack that will be maintained and adapted to Slide as we
>> go  along. It is important to understand that all this works only when
>> you  access Slide through its WebDAV interface and only if you
>> restrict  yourself to the core WebDAV methods. It is likely not to
>> work when you  use the native Slide interface. It will not work with
>> ACL, BIND, SEARCH  and DeltaV methods.
>>
>> The main interfaces
>> -------------------
>>
>> To make Slide work as your WebDAV layer you will have to implement a
>> single interface: org.apache.slide.simple.store.BasicWebdavStore. It
>> contains some call back methods which do not use any Slide classes
>> except for the exceptions, which I thought are pretty obvious and thus
>>  it would have been silly to more or less clone them. Here they are
>> for a  short reference - the complete ones I will check in will have
>> much more  detailed documentation:
>>
>> - begin, commit, rollback: begins, commits, aborts a request /
>> transaction - objectExists, isFolder, isResource: existence checks,
>> collection vs.  content checks
>> - createFolder, createResource: creation of a collection or a content
>> resource
>> - removeObject: deletion of a collection or a content resource
>> - setResourceContent, getResourceContent: storing and retrieval of a
>> content resource
>> - getLastModified, getCreationDate, getResourceLength: retrieval of
>> basic meta data
>> - getChildrenNames: retrieval of the children of a collection
>>
>> This is all Slide and WCK need to make basic WebDAV operations work.
>> There are optional extension interfaces that add full property access
>> and locking if your system supports them.
>>
>> The second main interface is even simpler and allows you to login into
>>  Slide using your proprietary user database. The glue code will pass
>> session and connection information to your store as well. All this
>> allows to effectively bypass Slide's security code and leave this to
>> your system. All you have to implement are three methods of the
>> org.apache.slide.simple.authentication.SessionAuthenticationManager.
>>
>> - getAuthenticationSession (2x one with user/password one with user
>> only): asks if a certain user exists and authenticated itseld
>> correctly  and if so an object that allows access to your system, i.e.
>> a session or  connection or anything similiar, is passed back; in case
>> the user has  already authenticated correctly before only the user
>> with no password is  passed
>> - closeAuthenticationSession: closes the session / terminates the
>> connection to your system
>>
>> Using this interface the glue code finds out if a user exists and
>> authenticated itself correctly and passes all relevant information to
>> the basic WebDAV store for you to make authenticated requests to your
>> system later. All this is optional, you still can use Slide's internal
>>  security with your WebDAV store if this is not appropriate for you.
>> For  your convenience there also is a connection pool available.
>>
>> Reference Implementation
>> ------------------------
>>
>> For the store, the session manager and the pooling connection manager
>> there are reference implementations to the file system to help you get
>>  going. However, the ones for sessions and connection management are
>> dummies only as the file system neither needs sessions nor
>> connections. The reference implementation of the store part and also
>> parts of the  glue code are heavily inspired by the work of Alon who
>> provided the  simple file store to us - so credit goes to Alon. The
>> new implementation  of the file store extends Alon's in adding
>> arbitrary properties  (optional) and locks (optional) and proper
>> handling of access violations.
>>
>> Building
>> --------
>>
>> WCK works with both the current versions of Slide 2.1 and the CVS HEAD
>>  and comes with a build script that creates a full working web archive
>> to  be deployed in Tomcat. Which one it will compile to and package
>> with is  to be determined in build.properties. If this isn't obvious
>> details will
>>   follow upon request. When WCK matures it might be possible to even
>> release it as a distribution of its own, but this is something to
>> discuss.
>>
>> Bottom Line
>> -----------
>>
>> What I need from you is feedback as detailed as possible if this suits
>>  your needs our what should be changed resp. added to make this what
>> you  need.
>>
>> Additionally, I am pretty sure I have forgotten the most important
>> parts, so remind me and ask for them, please...
>>
>> Finally, have in mind this is work in progress so changes to the API
>> are  somewhat likely.
>>
>> Have fun checking this out and cheers
>>
>> Oliver
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org For
>> additional commands, e-mail: slide-user-help@jakarta.apache.org
>>
>>
>
>
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org


-- 
Michael Oliver
CTO
Alarius Systems LLC
3325 N. Nellis Blvd, Suite #1
Las Vegas, NV 89115
(702)643-7425 Office
(520)844-1036 Fax
(518)378-6154 Cell
<a
href="http://edit.yahoo.com/config/send_webmesg?.target=MikeOliverAZ&.src=pg">
<img border=0 src="http://opi.yahoo.com/online?u=MikeOliverAZ&m=g&t=2"></a>



---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by James Mason <ma...@apache.org>.
Awesome Oliver! I look forward to playing with this.

Where do you find the time? ;)

-James

On Tue, 2004-10-12 at 02:17, Oliver Zeigermann wrote:
> Folks,
> 
> if things work out the way I plan I will add the WebDAV Construction Kit 
> to the proposals section of the Slide CVS HEAD today.
> 
> It contains classes that help you to make your proprietary system WebDAV 
> aware without much knowledge of either Slide and then also WebDAV to an 
> extend that it should work with the usual Windows, Mac and Linux clients.
> 
> It emerged out of the experience that Slide's storing system is most 
> flexible and generic, but too complex for many people who just want to 
> add the WebDAV interface to their systems. Additionally, it contains a 
> JAAS login module that allows you to bypass Slide's user managerment and 
> the complete internal access checking. All this is done by your 
> proprietary system. This, however, is optional to you.
> 
> All this is the largest hack I have ever done as it relies on many 
> implementation details and sequences of calls - at least it should be 
> the standard hack that will be maintained and adapted to Slide as we go 
> along. It is important to understand that all this works only when you 
> access Slide through its WebDAV interface and only if you restrict 
> yourself to the core WebDAV methods. It is likely not to work when you 
> use the native Slide interface. It will not work with ACL, BIND, SEARCH 
> and DeltaV methods.
> 
> The main interfaces
> -------------------
> 
> To make Slide work as your WebDAV layer you will have to implement a 
> single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
> contains some call back methods which do not use any Slide classes 
> except for the exceptions, which I thought are pretty obvious and thus 
> it would have been silly to more or less clone them. Here they are for a 
> short reference - the complete ones I will check in will have much more 
> detailed documentation:
> 
> - begin, commit, rollback: begins, commits, aborts a request / transaction
> - objectExists, isFolder, isResource: existence checks, collection vs. 
> content checks
> - createFolder, createResource: creation of a collection or a content 
> resource
> - removeObject: deletion of a collection or a content resource
> - setResourceContent, getResourceContent: storing and retrieval of a 
> content resource
> - getLastModified, getCreationDate, getResourceLength: retrieval of 
> basic meta data
> - getChildrenNames: retrieval of the children of a collection
> 
> This is all Slide and WCK need to make basic WebDAV operations work. 
> There are optional extension interfaces that add full property access 
> and locking if your system supports them.
> 
> The second main interface is even simpler and allows you to login into 
> Slide using your proprietary user database. The glue code will pass 
> session and connection information to your store as well. All this 
> allows to effectively bypass Slide's security code and leave this to 
> your system. All you have to implement are three methods of the 
> org.apache.slide.simple.authentication.SessionAuthenticationManager.
> 
> - getAuthenticationSession (2x one with user/password one with user 
> only): asks if a certain user exists and authenticated itseld correctly 
> and if so an object that allows access to your system, i.e. a session or 
> connection or anything similiar, is passed back; in case the user has 
> already authenticated correctly before only the user with no password is 
> passed
> - closeAuthenticationSession: closes the session / terminates the 
> connection to your system
> 
> Using this interface the glue code finds out if a user exists and 
> authenticated itself correctly and passes all relevant information to 
> the basic WebDAV store for you to make authenticated requests to your 
> system later. All this is optional, you still can use Slide's internal 
> security with your WebDAV store if this is not appropriate for you. For 
> your convenience there also is a connection pool available.
> 
> Reference Implementation
> ------------------------
> 
> For the store, the session manager and the pooling connection manager 
> there are reference implementations to the file system to help you get 
> going. However, the ones for sessions and connection management are 
> dummies only as the file system neither needs sessions nor connections.
> The reference implementation of the store part and also parts of the 
> glue code are heavily inspired by the work of Alon who provided the 
> simple file store to us - so credit goes to Alon. The new implementation 
> of the file store extends Alon's in adding arbitrary properties 
> (optional) and locks (optional) and proper handling of access violations.
> 
> Building
> --------
> 
> WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
> and comes with a build script that creates a full working web archive to 
> be deployed in Tomcat. Which one it will compile to and package with is 
> to be determined in build.properties. If this isn't obvious details will 
>   follow upon request. When WCK matures it might be possible to even 
> release it as a distribution of its own, but this is something to discuss.
> 
> Bottom Line
> -----------
> 
> What I need from you is feedback as detailed as possible if this suits 
> your needs our what should be changed resp. added to make this what you 
> need.
> 
> Additionally, I am pretty sure I have forgotten the most important 
> parts, so remind me and ask for them, please...
> 
> Finally, have in mind this is work in progress so changes to the API are 
> somewhat likely.
> 
> Have fun checking this out and cheers
> 
> Oliver
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by Oliver Zeigermann <ol...@gmail.com>.
Committed...


On Tue, 12 Oct 2004 11:17:54 +0200, Oliver Zeigermann
<ol...@zeigermann.de> wrote:
> Folks,
> 
> if things work out the way I plan I will add the WebDAV Construction Kit
> to the proposals section of the Slide CVS HEAD today.
> 
> It contains classes that help you to make your proprietary system WebDAV
> aware without much knowledge of either Slide and then also WebDAV to an
> extend that it should work with the usual Windows, Mac and Linux clients.
> 
> It emerged out of the experience that Slide's storing system is most
> flexible and generic, but too complex for many people who just want to
> add the WebDAV interface to their systems. Additionally, it contains a
> JAAS login module that allows you to bypass Slide's user managerment and
> the complete internal access checking. All this is done by your
> proprietary system. This, however, is optional to you.
> 
> All this is the largest hack I have ever done as it relies on many
> implementation details and sequences of calls - at least it should be
> the standard hack that will be maintained and adapted to Slide as we go
> along. It is important to understand that all this works only when you
> access Slide through its WebDAV interface and only if you restrict
> yourself to the core WebDAV methods. It is likely not to work when you
> use the native Slide interface. It will not work with ACL, BIND, SEARCH
> and DeltaV methods.
> 
> The main interfaces
> -------------------
> 
> To make Slide work as your WebDAV layer you will have to implement a
> single interface: org.apache.slide.simple.store.BasicWebdavStore. It
> contains some call back methods which do not use any Slide classes
> except for the exceptions, which I thought are pretty obvious and thus
> it would have been silly to more or less clone them. Here they are for a
> short reference - the complete ones I will check in will have much more
> detailed documentation:
> 
> - begin, commit, rollback: begins, commits, aborts a request / transaction
> - objectExists, isFolder, isResource: existence checks, collection vs.
> content checks
> - createFolder, createResource: creation of a collection or a content
> resource
> - removeObject: deletion of a collection or a content resource
> - setResourceContent, getResourceContent: storing and retrieval of a
> content resource
> - getLastModified, getCreationDate, getResourceLength: retrieval of
> basic meta data
> - getChildrenNames: retrieval of the children of a collection
> 
> This is all Slide and WCK need to make basic WebDAV operations work.
> There are optional extension interfaces that add full property access
> and locking if your system supports them.
> 
> The second main interface is even simpler and allows you to login into
> Slide using your proprietary user database. The glue code will pass
> session and connection information to your store as well. All this
> allows to effectively bypass Slide's security code and leave this to
> your system. All you have to implement are three methods of the
> org.apache.slide.simple.authentication.SessionAuthenticationManager.
> 
> - getAuthenticationSession (2x one with user/password one with user
> only): asks if a certain user exists and authenticated itseld correctly
> and if so an object that allows access to your system, i.e. a session or
> connection or anything similiar, is passed back; in case the user has
> already authenticated correctly before only the user with no password is
> passed
> - closeAuthenticationSession: closes the session / terminates the
> connection to your system
> 
> Using this interface the glue code finds out if a user exists and
> authenticated itself correctly and passes all relevant information to
> the basic WebDAV store for you to make authenticated requests to your
> system later. All this is optional, you still can use Slide's internal
> security with your WebDAV store if this is not appropriate for you. For
> your convenience there also is a connection pool available.
> 
> Reference Implementation
> ------------------------
> 
> For the store, the session manager and the pooling connection manager
> there are reference implementations to the file system to help you get
> going. However, the ones for sessions and connection management are
> dummies only as the file system neither needs sessions nor connections.
> The reference implementation of the store part and also parts of the
> glue code are heavily inspired by the work of Alon who provided the
> simple file store to us - so credit goes to Alon. The new implementation
> of the file store extends Alon's in adding arbitrary properties
> (optional) and locks (optional) and proper handling of access violations.
> 
> Building
> --------
> 
> WCK works with both the current versions of Slide 2.1 and the CVS HEAD
> and comes with a build script that creates a full working web archive to
> be deployed in Tomcat. Which one it will compile to and package with is
> to be determined in build.properties. If this isn't obvious details will
>   follow upon request. When WCK matures it might be possible to even
> release it as a distribution of its own, but this is something to discuss.
> 
> Bottom Line
> -----------
> 
> What I need from you is feedback as detailed as possible if this suits
> your needs our what should be changed resp. added to make this what you
> need.
> 
> Additionally, I am pretty sure I have forgotten the most important
> parts, so remind me and ask for them, please...
> 
> Finally, have in mind this is work in progress so changes to the API are
> somewhat likely.
> 
> Have fun checking this out and cheers
> 
> Oliver
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by Oliver Zeigermann <ol...@zeigermann.de>.
It depends on almost all the Slide jars if this is what you mean.

Oliver

Carlos Villegas schrieb:
> Oliver,
> 
> Do you mean that this is almost independent of the rest of Slide, or is 
> it still dependent on the large part of the Slide infrastructure?
> 
> Carlos
> 
> 
> Oliver Zeigermann wrote:
> 
>> Folks,
>>
>> if things work out the way I plan I will add the WebDAV Construction 
>> Kit to the proposals section of the Slide CVS HEAD today.
>>
>> It contains classes that help you to make your proprietary system 
>> WebDAV aware without much knowledge of either Slide and then also 
>> WebDAV to an extend that it should work with the usual Windows, Mac 
>> and Linux clients.
>>
>> It emerged out of the experience that Slide's storing system is most 
>> flexible and generic, but too complex for many people who just want to 
>> add the WebDAV interface to their systems. Additionally, it contains a 
>> JAAS login module that allows you to bypass Slide's user managerment 
>> and the complete internal access checking. All this is done by your 
>> proprietary system. This, however, is optional to you.
>>
>> All this is the largest hack I have ever done as it relies on many 
>> implementation details and sequences of calls - at least it should be 
>> the standard hack that will be maintained and adapted to Slide as we 
>> go along. It is important to understand that all this works only when 
>> you access Slide through its WebDAV interface and only if you restrict 
>> yourself to the core WebDAV methods. It is likely not to work when you 
>> use the native Slide interface. It will not work with ACL, BIND, 
>> SEARCH and DeltaV methods.
>>
>> The main interfaces
>> -------------------
>>
>> To make Slide work as your WebDAV layer you will have to implement a 
>> single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
>> contains some call back methods which do not use any Slide classes 
>> except for the exceptions, which I thought are pretty obvious and thus 
>> it would have been silly to more or less clone them. Here they are for 
>> a short reference - the complete ones I will check in will have much 
>> more detailed documentation:
>>
>> - begin, commit, rollback: begins, commits, aborts a request / 
>> transaction
>> - objectExists, isFolder, isResource: existence checks, collection vs. 
>> content checks
>> - createFolder, createResource: creation of a collection or a content 
>> resource
>> - removeObject: deletion of a collection or a content resource
>> - setResourceContent, getResourceContent: storing and retrieval of a 
>> content resource
>> - getLastModified, getCreationDate, getResourceLength: retrieval of 
>> basic meta data
>> - getChildrenNames: retrieval of the children of a collection
>>
>> This is all Slide and WCK need to make basic WebDAV operations work. 
>> There are optional extension interfaces that add full property access 
>> and locking if your system supports them.
>>
>> The second main interface is even simpler and allows you to login into 
>> Slide using your proprietary user database. The glue code will pass 
>> session and connection information to your store as well. All this 
>> allows to effectively bypass Slide's security code and leave this to 
>> your system. All you have to implement are three methods of the 
>> org.apache.slide.simple.authentication.SessionAuthenticationManager.
>>
>> - getAuthenticationSession (2x one with user/password one with user 
>> only): asks if a certain user exists and authenticated itseld 
>> correctly and if so an object that allows access to your system, i.e. 
>> a session or connection or anything similiar, is passed back; in case 
>> the user has already authenticated correctly before only the user with 
>> no password is passed
>> - closeAuthenticationSession: closes the session / terminates the 
>> connection to your system
>>
>> Using this interface the glue code finds out if a user exists and 
>> authenticated itself correctly and passes all relevant information to 
>> the basic WebDAV store for you to make authenticated requests to your 
>> system later. All this is optional, you still can use Slide's internal 
>> security with your WebDAV store if this is not appropriate for you. 
>> For your convenience there also is a connection pool available.
>>
>> Reference Implementation
>> ------------------------
>>
>> For the store, the session manager and the pooling connection manager 
>> there are reference implementations to the file system to help you get 
>> going. However, the ones for sessions and connection management are 
>> dummies only as the file system neither needs sessions nor connections.
>> The reference implementation of the store part and also parts of the 
>> glue code are heavily inspired by the work of Alon who provided the 
>> simple file store to us - so credit goes to Alon. The new 
>> implementation of the file store extends Alon's in adding arbitrary 
>> properties (optional) and locks (optional) and proper handling of 
>> access violations.
>>
>> Building
>> --------
>>
>> WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
>> and comes with a build script that creates a full working web archive 
>> to be deployed in Tomcat. Which one it will compile to and package 
>> with is to be determined in build.properties. If this isn't obvious 
>> details will  follow upon request. When WCK matures it might be 
>> possible to even release it as a distribution of its own, but this is 
>> something to discuss.
>>
>> Bottom Line
>> -----------
>>
>> What I need from you is feedback as detailed as possible if this suits 
>> your needs our what should be changed resp. added to make this what 
>> you need.
>>
>> Additionally, I am pretty sure I have forgotten the most important 
>> parts, so remind me and ask for them, please...
>>
>> Finally, have in mind this is work in progress so changes to the API 
>> are somewhat likely.
>>
>> Have fun checking this out and cheers
>>
>> Oliver
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: slide-user-help@jakarta.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org


Re: WCK: WebDAV Construction Kit

Posted by Carlos Villegas <ca...@uniscope.jp>.
Oliver,

Do you mean that this is almost independent of the rest of Slide, or is 
it still dependent on the large part of the Slide infrastructure?

Carlos


Oliver Zeigermann wrote:
> Folks,
> 
> if things work out the way I plan I will add the WebDAV Construction Kit 
> to the proposals section of the Slide CVS HEAD today.
> 
> It contains classes that help you to make your proprietary system WebDAV 
> aware without much knowledge of either Slide and then also WebDAV to an 
> extend that it should work with the usual Windows, Mac and Linux clients.
> 
> It emerged out of the experience that Slide's storing system is most 
> flexible and generic, but too complex for many people who just want to 
> add the WebDAV interface to their systems. Additionally, it contains a 
> JAAS login module that allows you to bypass Slide's user managerment and 
> the complete internal access checking. All this is done by your 
> proprietary system. This, however, is optional to you.
> 
> All this is the largest hack I have ever done as it relies on many 
> implementation details and sequences of calls - at least it should be 
> the standard hack that will be maintained and adapted to Slide as we go 
> along. It is important to understand that all this works only when you 
> access Slide through its WebDAV interface and only if you restrict 
> yourself to the core WebDAV methods. It is likely not to work when you 
> use the native Slide interface. It will not work with ACL, BIND, SEARCH 
> and DeltaV methods.
> 
> The main interfaces
> -------------------
> 
> To make Slide work as your WebDAV layer you will have to implement a 
> single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
> contains some call back methods which do not use any Slide classes 
> except for the exceptions, which I thought are pretty obvious and thus 
> it would have been silly to more or less clone them. Here they are for a 
> short reference - the complete ones I will check in will have much more 
> detailed documentation:
> 
> - begin, commit, rollback: begins, commits, aborts a request / transaction
> - objectExists, isFolder, isResource: existence checks, collection vs. 
> content checks
> - createFolder, createResource: creation of a collection or a content 
> resource
> - removeObject: deletion of a collection or a content resource
> - setResourceContent, getResourceContent: storing and retrieval of a 
> content resource
> - getLastModified, getCreationDate, getResourceLength: retrieval of 
> basic meta data
> - getChildrenNames: retrieval of the children of a collection
> 
> This is all Slide and WCK need to make basic WebDAV operations work. 
> There are optional extension interfaces that add full property access 
> and locking if your system supports them.
> 
> The second main interface is even simpler and allows you to login into 
> Slide using your proprietary user database. The glue code will pass 
> session and connection information to your store as well. All this 
> allows to effectively bypass Slide's security code and leave this to 
> your system. All you have to implement are three methods of the 
> org.apache.slide.simple.authentication.SessionAuthenticationManager.
> 
> - getAuthenticationSession (2x one with user/password one with user 
> only): asks if a certain user exists and authenticated itseld correctly 
> and if so an object that allows access to your system, i.e. a session or 
> connection or anything similiar, is passed back; in case the user has 
> already authenticated correctly before only the user with no password is 
> passed
> - closeAuthenticationSession: closes the session / terminates the 
> connection to your system
> 
> Using this interface the glue code finds out if a user exists and 
> authenticated itself correctly and passes all relevant information to 
> the basic WebDAV store for you to make authenticated requests to your 
> system later. All this is optional, you still can use Slide's internal 
> security with your WebDAV store if this is not appropriate for you. For 
> your convenience there also is a connection pool available.
> 
> Reference Implementation
> ------------------------
> 
> For the store, the session manager and the pooling connection manager 
> there are reference implementations to the file system to help you get 
> going. However, the ones for sessions and connection management are 
> dummies only as the file system neither needs sessions nor connections.
> The reference implementation of the store part and also parts of the 
> glue code are heavily inspired by the work of Alon who provided the 
> simple file store to us - so credit goes to Alon. The new implementation 
> of the file store extends Alon's in adding arbitrary properties 
> (optional) and locks (optional) and proper handling of access violations.
> 
> Building
> --------
> 
> WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
> and comes with a build script that creates a full working web archive to 
> be deployed in Tomcat. Which one it will compile to and package with is 
> to be determined in build.properties. If this isn't obvious details will 
>  follow upon request. When WCK matures it might be possible to even 
> release it as a distribution of its own, but this is something to discuss.
> 
> Bottom Line
> -----------
> 
> What I need from you is feedback as detailed as possible if this suits 
> your needs our what should be changed resp. added to make this what you 
> need.
> 
> Additionally, I am pretty sure I have forgotten the most important 
> parts, so remind me and ask for them, please...
> 
> Finally, have in mind this is work in progress so changes to the API are 
> somewhat likely.
> 
> Have fun checking this out and cheers
> 
> Oliver
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: slide-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org