org.apache.jackrabbit.webdav.server
Class AbstractWebdavServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.apache.jackrabbit.webdav.server.AbstractWebdavServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, DavConstants
Direct Known Subclasses:
JCRWebdavServerServlet, SimpleWebdavServlet

public abstract class AbstractWebdavServlet
extends javax.servlet.http.HttpServlet
implements DavConstants

AbstractWebdavServlet

See Also:
Serialized Form

Field Summary
static String DEFAULT_AUTHENTICATE_HEADER
          Default value for the 'WWW-Authenticate' header, that is set, if request results in a 401 (Unauthorized) error.
 
Fields inherited from interface org.apache.jackrabbit.webdav.DavConstants
creationDateFormat, DEPTH_0, DEPTH_1, DEPTH_INFINITY, DEPTH_INFINITY_S, HEADER_AUTHORIZATION, HEADER_CONTENT_LANGUAGE, HEADER_CONTENT_LENGTH, HEADER_CONTENT_TYPE, HEADER_DAV, HEADER_DEPTH, HEADER_DESTINATION, HEADER_ETAG, HEADER_IF, HEADER_LAST_MODIFIED, HEADER_LOCK_TOKEN, HEADER_OVERWRITE, HEADER_TIMEOUT, INFINITE_TIMEOUT, modificationDateFormat, NAMESPACE, OPAQUE_LOCK_TOKEN_PREFIX, PROPERTY_CREATIONDATE, PROPERTY_DISPLAYNAME, PROPERTY_GETCONTENTLANGUAGE, PROPERTY_GETCONTENTLENGTH, PROPERTY_GETCONTENTTYPE, PROPERTY_GETETAG, PROPERTY_GETLASTMODIFIED, PROPERTY_LOCKDISCOVERY, PROPERTY_RESOURCETYPE, PROPERTY_SOURCE, PROPERTY_SUPPORTEDLOCK, PROPFIND_ALL_PROP, PROPFIND_ALL_PROP_INCLUDE, PROPFIND_BY_PROPERTY, PROPFIND_PROPERTY_NAMES, TIMEOUT_INFINITE, UNDEFINED_TIME, UNDEFINED_TIMEOUT, XML_ACTIVELOCK, XML_ALLPROP, XML_COLLECTION, XML_DEPTH, XML_DST, XML_EXCLUSIVE, XML_HREF, XML_INCLUDE, XML_KEEPALIVE, XML_LINK, XML_LOCKENTRY, XML_LOCKINFO, XML_LOCKROOT, XML_LOCKSCOPE, XML_LOCKTOKEN, XML_LOCKTYPE, XML_MULTISTATUS, XML_OMIT, XML_OWNER, XML_PROP, XML_PROPERTYBEHAVIOR, XML_PROPERTYUPDATE, XML_PROPFIND, XML_PROPNAME, XML_PROPSTAT, XML_REMOVE, XML_RESPONSE, XML_RESPONSEDESCRIPTION, XML_SET, XML_SHARED, XML_SOURCE, XML_STATUS, XML_TIMEOUT, XML_WRITE
 
Constructor Summary
AbstractWebdavServlet()
           
 
Method Summary
protected  void doAcl(WebdavRequest request, WebdavResponse response, DavResource resource)
          The ACL method
protected  void doBaselineControl(WebdavRequest request, WebdavResponse response, DavResource resource)
          The BASELINECONTROL method
protected  void doBind(WebdavRequest request, WebdavResponse response, DavResource resource)
          The BIND method
protected  void doCheckin(WebdavRequest request, WebdavResponse response, DavResource resource)
          The CHECKIN method
protected  void doCheckout(WebdavRequest request, WebdavResponse response, DavResource resource)
          The CHECKOUT method
protected  void doCopy(WebdavRequest request, WebdavResponse response, DavResource resource)
          The COPY method
protected  void doDelete(WebdavRequest request, WebdavResponse response, DavResource resource)
          The DELETE method
protected  void doGet(WebdavRequest request, WebdavResponse response, DavResource resource)
          The GET method
protected  void doHead(WebdavRequest request, WebdavResponse response, DavResource resource)
          The HEAD method
protected  void doLabel(WebdavRequest request, WebdavResponse response, DavResource resource)
          The LABEL method
protected  void doLock(WebdavRequest request, WebdavResponse response, DavResource resource)
          The LOCK method
protected  void doMerge(WebdavRequest request, WebdavResponse response, DavResource resource)
          The MERGE method
protected  void doMkActivity(WebdavRequest request, WebdavResponse response, DavResource resource)
          The MKACTIVITY method
protected  void doMkCol(WebdavRequest request, WebdavResponse response, DavResource resource)
          The MKCOL method
protected  void doMkWorkspace(WebdavRequest request, WebdavResponse response, DavResource resource)
          The MKWORKSPACE method
protected  void doMove(WebdavRequest request, WebdavResponse response, DavResource resource)
          The MOVE method
protected  void doOptions(WebdavRequest request, WebdavResponse response, DavResource resource)
          The OPTION method
protected  void doOrderPatch(WebdavRequest request, WebdavResponse response, DavResource resource)
          The ORDERPATCH method
protected  void doPoll(WebdavRequest request, WebdavResponse response, DavResource resource)
          The POLL method
protected  void doPost(WebdavRequest request, WebdavResponse response, DavResource resource)
          The POST method.
protected  void doPropFind(WebdavRequest request, WebdavResponse response, DavResource resource)
          The PROPFIND method
protected  void doPropPatch(WebdavRequest request, WebdavResponse response, DavResource resource)
          The PROPPATCH method
protected  void doPut(WebdavRequest request, WebdavResponse response, DavResource resource)
          The PUT method
protected  void doRebind(WebdavRequest request, WebdavResponse response, DavResource resource)
          The REBIND method
protected  void doReport(WebdavRequest request, WebdavResponse response, DavResource resource)
          The REPORT method
protected  void doSearch(WebdavRequest request, WebdavResponse response, DavResource resource)
          The SEARCH method
protected  void doSubscribe(WebdavRequest request, WebdavResponse response, DavResource resource)
          The SUBSCRIBE method
protected  void doUnbind(WebdavRequest request, WebdavResponse response, DavResource resource)
          The UNBIND method
protected  void doUncheckout(WebdavRequest request, WebdavResponse response, DavResource resource)
          The UNCHECKOUT method
protected  void doUnlock(WebdavRequest request, WebdavResponse response, DavResource resource)
          The UNLOCK method
protected  void doUnsubscribe(WebdavRequest request, WebdavResponse response, DavResource resource)
          The UNSUBSCRIBE method
protected  void doUpdate(WebdavRequest request, WebdavResponse response, DavResource resource)
          The UPDATE method
protected  void doVersionControl(WebdavRequest request, WebdavResponse response, DavResource resource)
          The VERSION-CONTROL method
protected  boolean execute(WebdavRequest request, WebdavResponse response, int method, DavResource resource)
          Executes the respective method in the given webdav context
abstract  String getAuthenticateHeaderValue()
          Returns the value of the 'WWW-Authenticate' header, that is returned in case of 401 error.
abstract  DavSessionProvider getDavSessionProvider()
          Returns the DavSessionProvider.
protected  InputContext getInputContext(DavServletRequest request, InputStream in)
          Return a new InputContext used for adding resource members
abstract  DavLocatorFactory getLocatorFactory()
          Returns the DavLocatorFactory.
protected  OutputContext getOutputContext(DavServletResponse response, OutputStream out)
          Return a new OutputContext used for spooling resource properties and the resource content
abstract  DavResourceFactory getResourceFactory()
          Returns the DavResourceFactory.
protected abstract  boolean isPreconditionValid(WebdavRequest request, DavResource resource)
          Checks if the precondition for this request and resource is valid.
protected  void sendUnauthorized(WebdavRequest request, WebdavResponse response, DavException error)
          Sets the "WWW-Authenticate" header and writes the appropriate error to the given webdav response.
protected  void service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Service the given request.
abstract  void setDavSessionProvider(DavSessionProvider davSessionProvider)
          Returns the DavSessionProvider.
abstract  void setLocatorFactory(DavLocatorFactory locatorFactory)
          Sets the DavLocatorFactory.
abstract  void setResourceFactory(DavResourceFactory resourceFactory)
          Sets the DavResourceFactory.
protected  int validateDestination(DavResource destResource, WebdavRequest request, boolean checkHeader)
          Validate the given destination resource and return the proper status code: Any return value greater/equal than HttpServletResponse.SC_NO_CONTENT indicates an error.
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_AUTHENTICATE_HEADER

public static final String DEFAULT_AUTHENTICATE_HEADER
Default value for the 'WWW-Authenticate' header, that is set, if request results in a 401 (Unauthorized) error.

See Also:
getAuthenticateHeaderValue(), Constant Field Values
Constructor Detail

AbstractWebdavServlet

public AbstractWebdavServlet()
Method Detail

isPreconditionValid

protected abstract boolean isPreconditionValid(WebdavRequest request,
                                               DavResource resource)
Checks if the precondition for this request and resource is valid.

Parameters:
request -
resource -
Returns:

getDavSessionProvider

public abstract DavSessionProvider getDavSessionProvider()
Returns the DavSessionProvider.

Returns:
the session provider

setDavSessionProvider

public abstract void setDavSessionProvider(DavSessionProvider davSessionProvider)
Returns the DavSessionProvider.

Parameters:
davSessionProvider -

getLocatorFactory

public abstract DavLocatorFactory getLocatorFactory()
Returns the DavLocatorFactory.

Returns:
the locator factory

setLocatorFactory

public abstract void setLocatorFactory(DavLocatorFactory locatorFactory)
Sets the DavLocatorFactory.

Parameters:
locatorFactory -

getResourceFactory

public abstract DavResourceFactory getResourceFactory()
Returns the DavResourceFactory.

Returns:
the resource factory

setResourceFactory

public abstract void setResourceFactory(DavResourceFactory resourceFactory)
Sets the DavResourceFactory.

Parameters:
resourceFactory -

getAuthenticateHeaderValue

public abstract String getAuthenticateHeaderValue()
Returns the value of the 'WWW-Authenticate' header, that is returned in case of 401 error.

Returns:
value of the 'WWW-Authenticate' header

service

protected void service(javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response)
                throws javax.servlet.ServletException,
                       IOException
Service the given request.

Overrides:
service in class javax.servlet.http.HttpServlet
Parameters:
request -
response -
Throws:
javax.servlet.ServletException
IOException

sendUnauthorized

protected void sendUnauthorized(WebdavRequest request,
                                WebdavResponse response,
                                DavException error)
                         throws IOException
Sets the "WWW-Authenticate" header and writes the appropriate error to the given webdav response.

Parameters:
request - The webdav request.
response - The webdav response.
error - The DavException that leads to the unauthorized response.
Throws:
IOException

execute

protected boolean execute(WebdavRequest request,
                          WebdavResponse response,
                          int method,
                          DavResource resource)
                   throws javax.servlet.ServletException,
                          IOException,
                          DavException
Executes the respective method in the given webdav context

Parameters:
request -
response -
method -
resource -
Throws:
javax.servlet.ServletException
IOException
DavException

doOptions

protected void doOptions(WebdavRequest request,
                         WebdavResponse response,
                         DavResource resource)
                  throws IOException,
                         DavException
The OPTION method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doHead

protected void doHead(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException
The HEAD method

Parameters:
request -
response -
resource -
Throws:
IOException

doGet

protected void doGet(WebdavRequest request,
                     WebdavResponse response,
                     DavResource resource)
              throws IOException,
                     DavException
The GET method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doPropFind

protected void doPropFind(WebdavRequest request,
                          WebdavResponse response,
                          DavResource resource)
                   throws IOException,
                          DavException
The PROPFIND method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doPropPatch

protected void doPropPatch(WebdavRequest request,
                           WebdavResponse response,
                           DavResource resource)
                    throws IOException,
                           DavException
The PROPPATCH method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doPost

protected void doPost(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException,
                      DavException
The POST method. Delegate to PUT

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doPut

protected void doPut(WebdavRequest request,
                     WebdavResponse response,
                     DavResource resource)
              throws IOException,
                     DavException
The PUT method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doMkCol

protected void doMkCol(WebdavRequest request,
                       WebdavResponse response,
                       DavResource resource)
                throws IOException,
                       DavException
The MKCOL method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doDelete

protected void doDelete(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws IOException,
                        DavException
The DELETE method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doCopy

protected void doCopy(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException,
                      DavException
The COPY method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doMove

protected void doMove(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException,
                      DavException
The MOVE method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doBind

protected void doBind(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException,
                      DavException
The BIND method

Parameters:
request -
response -
resource - the collection resource to which a new member will be added
Throws:
IOException
DavException

doRebind

protected void doRebind(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws IOException,
                        DavException
The REBIND method

Parameters:
request -
response -
resource - the collection resource to which a new member will be added
Throws:
IOException
DavException

doUnbind

protected void doUnbind(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws IOException,
                        DavException
The UNBIND method

Parameters:
request -
response -
resource - the collection resource from which a member will be removed
Throws:
IOException
DavException

validateDestination

protected int validateDestination(DavResource destResource,
                                  WebdavRequest request,
                                  boolean checkHeader)
                           throws DavException
Validate the given destination resource and return the proper status code: Any return value greater/equal than HttpServletResponse.SC_NO_CONTENT indicates an error.

Parameters:
destResource - destination resource to be validated.
request -
checkHeader - flag indicating if the destination header must be present.
Returns:
status code indicating whether the destination is valid.
Throws:
DavException

doLock

protected void doLock(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException,
                      DavException
The LOCK method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doUnlock

protected void doUnlock(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws DavException
The UNLOCK method

Parameters:
request -
response -
resource -
Throws:
DavException

doOrderPatch

protected void doOrderPatch(WebdavRequest request,
                            WebdavResponse response,
                            DavResource resource)
                     throws IOException,
                            DavException
The ORDERPATCH method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doSubscribe

protected void doSubscribe(WebdavRequest request,
                           WebdavResponse response,
                           DavResource resource)
                    throws IOException,
                           DavException
The SUBSCRIBE method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doUnsubscribe

protected void doUnsubscribe(WebdavRequest request,
                             WebdavResponse response,
                             DavResource resource)
                      throws IOException,
                             DavException
The UNSUBSCRIBE method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doPoll

protected void doPoll(WebdavRequest request,
                      WebdavResponse response,
                      DavResource resource)
               throws IOException,
                      DavException
The POLL method

Parameters:
request -
response -
resource -
Throws:
IOException
DavException

doVersionControl

protected void doVersionControl(WebdavRequest request,
                                WebdavResponse response,
                                DavResource resource)
                         throws DavException,
                                IOException
The VERSION-CONTROL method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doLabel

protected void doLabel(WebdavRequest request,
                       WebdavResponse response,
                       DavResource resource)
                throws DavException,
                       IOException
The LABEL method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doReport

protected void doReport(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws DavException,
                        IOException
The REPORT method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doCheckin

protected void doCheckin(WebdavRequest request,
                         WebdavResponse response,
                         DavResource resource)
                  throws DavException,
                         IOException
The CHECKIN method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doCheckout

protected void doCheckout(WebdavRequest request,
                          WebdavResponse response,
                          DavResource resource)
                   throws DavException,
                          IOException
The CHECKOUT method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doUncheckout

protected void doUncheckout(WebdavRequest request,
                            WebdavResponse response,
                            DavResource resource)
                     throws DavException,
                            IOException
The UNCHECKOUT method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doMerge

protected void doMerge(WebdavRequest request,
                       WebdavResponse response,
                       DavResource resource)
                throws DavException,
                       IOException
The MERGE method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doUpdate

protected void doUpdate(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws DavException,
                        IOException
The UPDATE method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doMkWorkspace

protected void doMkWorkspace(WebdavRequest request,
                             WebdavResponse response,
                             DavResource resource)
                      throws DavException,
                             IOException
The MKWORKSPACE method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doMkActivity

protected void doMkActivity(WebdavRequest request,
                            WebdavResponse response,
                            DavResource resource)
                     throws DavException,
                            IOException
The MKACTIVITY method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doBaselineControl

protected void doBaselineControl(WebdavRequest request,
                                 WebdavResponse response,
                                 DavResource resource)
                          throws DavException,
                                 IOException
The BASELINECONTROL method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doSearch

protected void doSearch(WebdavRequest request,
                        WebdavResponse response,
                        DavResource resource)
                 throws DavException,
                        IOException
The SEARCH method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

doAcl

protected void doAcl(WebdavRequest request,
                     WebdavResponse response,
                     DavResource resource)
              throws DavException,
                     IOException
The ACL method

Parameters:
request -
response -
resource -
Throws:
DavException
IOException

getInputContext

protected InputContext getInputContext(DavServletRequest request,
                                       InputStream in)
Return a new InputContext used for adding resource members

Parameters:
request -
in -
Returns:
See Also:
spoolResource(WebdavRequest, WebdavResponse, DavResource, boolean)

getOutputContext

protected OutputContext getOutputContext(DavServletResponse response,
                                         OutputStream out)
Return a new OutputContext used for spooling resource properties and the resource content

Parameters:
response -
out -
Returns:
See Also:
doPut(WebdavRequest, WebdavResponse, DavResource), doPost(WebdavRequest, WebdavResponse, DavResource), doMkCol(WebdavRequest, WebdavResponse, DavResource)


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.