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]
