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: [EMAIL PROTECTED] For
>> additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
> --------------------------------------------------------------------- To
> unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to