Committed...

On Tue, 12 Oct 2004 11:17:54 +0200, Oliver Zeigermann
<[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to