|  | Qore xml Module
    1.8.0
    | 
Abstract WebDavHandler interface class. More...
 
  
| Public Member Methods | |
| constructor (*AbstractAuthenticator auth) | |
| Creates the object with an empty logger and an in-memory property handler.  More... | |
| constructor (*AbstractAuthenticator auth, string virtual_relative_path_base) | |
| Creates the object with the given argument and an in-memory property handler.  More... | |
| constructor (*AbstractAuthenticator auth, AbstractWebDavPropertyHandler property_handler, string virtual_relative_path_base='/') | |
| Creates the object with the given arguments.  More... | |
| constructor (*AbstractAuthenticator auth, Logger logger, AbstractWebDavPropertyHandler property_handler=new InMemoryWebDavPropertyHandler(), string virtual_relative_path_base='/') | |
| Creates the object with the given arguments.  More... | |
| list< string > | getHttpMethods () | 
| Returnd a list of WebDavHandler methods. | |
| setLogger (Logger logger) | |
| Replace the logger. | |
| hash< HttpResponseInfo > | handleRequest (HttpListenerInterface listener, Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP/WebDavHandler requests and returns the response. | |
| string | getRelativePath (string raw_path) | 
| Returns a relative path from an absolute path.  More... | |
| hash< HttpResponseInfo > | response (int response_code=200, data msg='OK') | 
| Returns a hash that can be used as an HTTP response with the given HTTP response code and response message. | |
| hash< HttpResponseInfo > | response (int response_code=200, hash< auto > hdr) | 
| Returns a hash that can be used as an HTTP response with the given HTTP response code and response headers. | |
| hash< HttpResponseInfo > | resp400 (data msg='Bad Request') | 
| Returns a hash that can be used as an HTTP response with a 400 response code and response message. | |
| hash< HttpResponseInfo > | resp404 () | 
| Returns a hash that can be used as an HTTP response with a 404 response code and response message. | |
| hash< HttpResponseInfo > | resp500 (data msg='General Server Error') | 
| Returns a hash that can be used as an HTTP response with a 500 response code and response message. | |
| hash< HttpResponseInfo > | resp501 () | 
| Returns a hash that can be used as an HTTP response with a 501 response code and response message. | |
| private | init (Logger logger, AbstractWebDavPropertyHandler property_handler, string virtual_relative_path_base="/") | 
| Common constructor code. | |
| private hash< auto > | preparePropFindXmlResponse (string local_path, string href, bool is_collection, hash< auto > base_props, bool all_props=False, *hash< string, hash< string, bool >> additional_props) | 
| Returns a hash that can be serialized to an XML string for a PROPFIND request. | |
| hash< HttpResponseInfo > | handleOptions (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles a WebDavHandler OPTIONS request.  More... | |
| hash< HttpResponseInfo > | handleGet (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP GET requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleHead (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP HEAD requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handlePost (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP POST requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handlePut (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP PUT requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleDelete (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP DELETE requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleCopy (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler COPY requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleMove (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler MOVE requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleLock (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler LOCK requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleUnlock (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler UNLOCK requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleMkcol (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler MKCOL requests for WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handlePropfind (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler PROPFIND requests for WebDavHandler resources; reetrieves properties from WebDavHandler resources.  More... | |
| hash< HttpResponseInfo > | handleProppatch (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler PROPPATCH requests for WebDavHandler resources; sets or removes properties on WebDavHandler resources.  More... | |
| logInfo (string fmt) | |
| This method is called with informational log messages. | |
| logError (string fmt) | |
| This method is called with error log messages. | |
| logDebug (string fmt) | |
| This method is called with debug log messages. | |
| abstract private *hash< string, hash< string, hash< string, bool > > > | handleProppatchImpl (reference< string > href, hash< auto > cx, hash< auto > hdr, *hash< auto > request_xml, *list< hash< PropPatchActionInfo >> actions) | 
| Internal method for handling PROPPATCH requests.  More... | |
| Static Public Member Methods | |
| static | combineValue (reference< auto > h, auto v) | 
| Combines values recursively. | |
| Public Attributes | |
| const | RequestMethods | 
| A hash of all supported WebDavHandler methods mapped to method names. | |
| const | DestMethods | 
| A hash of methods that require a Destination header. | |
| const | AllowHeaderValue = RequestMethods.keys().join(",") | 
| List of WebDavHandler methods in a string suitable for use in HTTP responses. | |
| const | MethodList = keys RequestMethods | 
| List of WebDavHandler methods. | |
| const | PPA_Remove = "R" | 
| PROPPATCH action: remove. | |
| const | PPA_Set = "S" | 
| PROPPATCH action: set. | |
| Private Member Methods | |
| string | getRealPath (string raw_path) | 
| Converts a request path to a normalized real path on the filesystem in the root WebDavHandler directory.  More... | |
| *hash< HttpResponseInfo > | checkAuth (string method, hash< auto > cx, hash< auto > hdr, *data body) | 
| Checks if the request is authorized; if not, this method must return a value.  More... | |
| copyProperties (string source_url, string target_url) | |
| Copies all properties from the given source URL to the target URL. | |
| moveProperties (string source_url, string target_url) | |
| Moves all properties from the given source URL to the target URL. | |
| deleteProperties (string source_url) | |
| Deletes all properties from the given URL. | |
| string | getStatusMessage (softstring http_code) | 
| Returns a status message for the given HTTP response code.  More... | |
| hash< auto > | getXml (string body) | 
| Parse incoming XML and handle namespaces. | |
| hash< HttpResponseInfo > | handleOptionsImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles an HTTP/WebDavHandler OPTIONS request.  More... | |
| abstract hash< HttpResponseInfo > | handleGetImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP GET requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleHeadImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP HEAD requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handlePostImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP POST requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handlePutImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP PUT requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleDeleteImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles HTTP DELETE requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleCopyImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler COPY requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleMoveImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler MOVE requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleLockImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler LOCK requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleUnlockImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler UNLOCK requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handleMkcolImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler MKCOL requests for WebDavHandler resources.  More... | |
| abstract hash< HttpResponseInfo > | handlePropfindImpl (Socket s, hash< auto > cx, hash< auto > hdr, *data body) | 
| Handles WebDavHandler PROPFIND requests for WebDavHandler resources; reetrieves properties from WebDavHandler resources.  More... | |
| Private Attributes | |
| AbstractWebDavPropertyHandler | property_handler | 
| The property handler object. | |
| string | virtual_base_path | 
| The virtual base path for resources served by the WebDavHandler handler. | |
| Logger | logger | 
| The Logger for this object. | |
Abstract WebDavHandler interface class.
| 
 | private | 
Checks if the request is authorized; if not, this method must return a value.
Override this in a subclass to implement authorization controls
| WebDavHandler::AbstractWebDavHandler::constructor | ( | *AbstractAuthenticator | auth | ) | 
Creates the object with an empty logger and an in-memory property handler.
| auth | the authentication object to use to authenticate connections | 
| WebDavHandler::AbstractWebDavHandler::constructor | ( | *AbstractAuthenticator | auth, | 
| AbstractWebDavPropertyHandler | property_handler, | ||
| string | virtual_relative_path_base = '/' | ||
| ) | 
Creates the object with the given arguments.
| auth | the authentication object to use to authenticate connections | 
| property_handler | to handle properties | 
| virtual_relative_path_base | the virtual base path for WebDavHandler requests; this path will be stripped from requests internally when serving WebDavHandler resources | 
| WebDavHandler::AbstractWebDavHandler::constructor | ( | *AbstractAuthenticator | auth, | 
| Logger | logger, | ||
| AbstractWebDavPropertyHandler | property_handler = new InMemoryWebDavPropertyHandler(), | ||
| string | virtual_relative_path_base = '/' | ||
| ) | 
Creates the object with the given arguments.
| auth | the authentication object to use to authenticate connections | 
| logger | the logger | 
| property_handler | to handle properties | 
| virtual_relative_path_base | the virtual base path for WebDavHandler requests; this path will be stripped from requests internally when serving WebDavHandler resources | 
| WebDavHandler::AbstractWebDavHandler::constructor | ( | *AbstractAuthenticator | auth, | 
| string | virtual_relative_path_base | ||
| ) | 
Creates the object with the given argument and an in-memory property handler.
| auth | the authentication object to use to authenticate connections | 
| virtual_relative_path_base | the virtual base path for WebDavHandler requests; this path will be stripped from requests internally when serving WebDavHandler resources | 
| 
 | private | 
Converts a request path to a normalized real path on the filesystem in the root WebDavHandler directory.
| WEBDAVHANDLER-FORBIDDEN | if the path is not valid | 
| string WebDavHandler::AbstractWebDavHandler::getRelativePath | ( | string | raw_path | ) | 
Returns a relative path from an absolute path.
| raw_path | the rar path to process | 
| 
 | private | 
Returns a status message for the given HTTP response code.
| RESPONSE-ERROR | the code is unknown | 
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleCopy | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler COPY requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles WebDavHandler COPY requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleDelete | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles HTTP DELETE requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles HTTP DELETE requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleGet | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles HTTP GET requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles HTTP GET requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleHead | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles HTTP HEAD requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles HTTP HEAD requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleLock | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler LOCK requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles WebDavHandler LOCK requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleMkcol | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler MKCOL requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles WebDavHandler MKCOL requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleMove | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler MOVE requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles WebDavHandler MOVE requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleOptions | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles a WebDavHandler OPTIONS request.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | private | 
Handles an HTTP/WebDavHandler OPTIONS request.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handlePost | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles HTTP POST requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles HTTP POST requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handlePropfind | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler PROPFIND requests for WebDavHandler resources; reetrieves properties from WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles WebDavHandler PROPFIND requests for WebDavHandler resources; reetrieves properties from WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleProppatch | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler PROPPATCH requests for WebDavHandler resources; sets or removes properties on WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | pure virtual | 
Internal method for handling PROPPATCH requests.
| href | the href for the response | 
| cx | the HTTP call context | 
| hdr | as hash HTTP headers | 
| request_xml | the parsed XML in the request | 
| actions | a list of set and remove actions to execute on the given properties | 
| WEBDAVHANDLER-ERROR | an error occured | 
Implemented in WebDavHandler::FsWebDavHandler, and WebDavHandler::DummyWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handlePut | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles HTTP PUT requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles HTTP PUT requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.
| hash<HttpResponseInfo> WebDavHandler::AbstractWebDavHandler::handleUnlock | ( | Socket | s, | 
| hash< auto > | cx, | ||
| hash< auto > | hdr, | ||
| *data | body | ||
| ) | 
Handles WebDavHandler UNLOCK requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
| 
 | privatepure virtual | 
Handles WebDavHandler UNLOCK requests for WebDavHandler resources.
| cx | call context hash; this hash will have the following keys: 
 | 
| hdr | incoming header hash; all keys will be converted to lower-case, additionally the following keys will be present: 
 | 
| body | message body, if any | 
Implemented in WebDavHandler::DummyWebDavHandler, and WebDavHandler::FsWebDavHandler.