public class IfsDavServlet
extends oracle.ifs.protocols.dav.DavServlet
oracle.ifs.protocols.dav.DavServlet.EntityTag, oracle.ifs.protocols.dav.DavServlet.IfHeader, oracle.ifs.protocols.dav.DavServlet.IfList, oracle.ifs.protocols.dav.DavServlet.IfListItem, oracle.ifs.protocols.dav.DavServlet.IfTaggedNoTagList, oracle.ifs.protocols.dav.DavServlet.LockTimeout, oracle.ifs.protocols.dav.DavServlet.ProppatchAction, oracle.ifs.protocols.dav.DavServlet.StringPos
CHARSET_DEFAULT, DEPTH_INFINITY, DEPTH_INVALID, DEPTH_ONE, DEPTH_ZERO, ERROR_CODED_URI_INVAL_HEX, ERROR_CODED_URI_MISSING_LANGLE, ERROR_CODED_URI_MISSING_RANGLE, ERROR_ELEMENT_NOT_FOUND, ERROR_EMPTY_IF_HEADER, ERROR_EMPTY_KEEPALIVE, ERROR_EMPTY_LOCK_WITH_NO_IF, ERROR_EMPTY_PROPPATCH_BODY, ERROR_ENTITY_TAG_EXPECTED_QUOTE, ERROR_IF_HEADER_MISSING_LIST_ITEM, ERROR_IF_HEADER_MISSING_LIST_PAREN, ERROR_IF_HEADER_MISSING_LIST_TAG, ERROR_IF_HEADER_MISSING_RBRACK, ERROR_INVALID_DEPTH, ERROR_INVALID_HREF_CONTENTS, ERROR_INVALID_KEEPALIVE_TEXT, ERROR_INVALID_LOCK_DEPTH, ERROR_INVALID_METHOD, ERROR_INVALID_MOVE_OR_COPY_DEPTH, ERROR_INVALID_OVERWRITE_HEADER, ERROR_INVALID_TIMEOUT_FORMAT, ERROR_INVALID_XML_ROOT, ERROR_LOCKSCOPE_NOT_EMPTY, ERROR_LOCKTYPE_NOT_EMPTY, ERROR_MISSING_LOCK_TOKEN_HEADER, ERROR_MOVE_OR_COPY_REQUIRES_DEST, ERROR_OMIT_NOT_EMPTY, ERROR_OPTION_UNSUPPORTED, ERROR_PROPFIND_PROP_NOT_EMPTY, ERROR_PROPPATCH_REMOVE_HAS_VALUE, ERROR_PROPPATCH_SET_HAS_NO_VALUE, ERROR_REDUNDANT_ELEMENT, ERROR_REPOS_SPECIFIC, ERROR_XML_SYNTAX, IF_MATCH_FALSE, IF_MATCH_IGNORE, IF_MATCH_TRUE, LOCK_TIMEOUT_EXTEND, LOCK_TIMEOUT_INFINITE, LOCK_TIMEOUT_SECONDS, LOCKSCOPE_EXCLUSIVE, LOCKSCOPE_SHARED, LOCKSCOPE_UNSPECIFIED, LOCKTYPE_UNSPECIFIED, LOCKTYPE_WRITE, METHOD_COPY, METHOD_DELETE, METHOD_GET, METHOD_HEAD, METHOD_LOCK, METHOD_MKCOL, METHOD_MOVE, METHOD_OPTIONS, METHOD_POST, METHOD_PROPFIND, METHOD_PROPPATCH, METHOD_PUT, METHOD_TRACE, METHOD_UNLOCK, PROPBEHAVIOR_DEFAULT, PROPBEHAVIOR_KEEPALIVE_ALL, PROPBEHAVIOR_KEEPALIVE_LIST, PROPBEHAVIOR_OMIT, PROPPATCH_REMOVE, PROPPATCH_SET
Constructor and Description |
---|
IfsDavServlet() |
Modifier and Type | Method and Description |
---|---|
protected void |
addLockDiscoveryElement(LockObject lo,
oracle.ifs.adk.filesystem.FileManager fm,
oracle.ifs.protocols.dav.PropResponder responder,
Element parentElt,
javax.servlet.http.HttpServletRequest req) |
static String |
convertStringToInferredEncoding(javax.servlet.http.HttpServletRequest req,
String s,
LibrarySession session,
boolean useUserProfile) |
static void |
debug(String method,
String message) |
static void |
debug(String method,
String message,
Throwable e) |
void |
destroy()
Destroy the servlet.
|
protected void |
destroyDavlets() |
protected void |
doBadRequest(Object requestCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
int err)
Service an invalid request.
|
protected void |
doGet(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service a GET request.
|
protected void |
doGetOrHead(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
boolean doGet) |
protected void |
doGettokencred(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
protected void |
doHead(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service a HEAD request.
|
protected String |
doJspLookup(oracle.ifs.adk.security.IfsHttpLogin login,
PublicObject po) |
protected void |
doLogout(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
protected void |
doMkcol(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.DavXmlBody reqXml,
javax.servlet.http.HttpServletResponse resp)
Service a MKCOL request.
|
protected void |
doOptions(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service an OPTIONS request.
|
protected void |
doPost(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service a POST request.
|
protected void |
doPut(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service a PUT request.
|
protected void |
doTrace(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service a TRACE request.
|
protected void |
doUnknown(Object requestCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service a request that uses a method name that we don't recognize
(i.e., a method name that isn't part of the HTTP/1.1 method set
or the WebDAV set).
|
protected String |
getContextServletPath(javax.servlet.http.HttpServletRequest req) |
protected void |
getDavPropertyValue(oracle.ifs.adk.filesystem.FileManager fm,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.impl.common.IfsTreeTraverser.TraversedNode tn,
Node property,
oracle.ifs.protocols.dav.PropfindResponder responder,
Element responseGroup,
javax.servlet.ServletContext servletContext,
boolean ignoreNotFound) |
protected HashMap |
getDefaultFMIOptions(javax.servlet.http.HttpServletRequest req) |
static Credential |
getGuestCredential() |
String |
getIfsServerName() |
static String |
getIfsServiceName() |
protected boolean |
getIsFileSyncable(oracle.ifs.adk.filesystem.FileManager fm,
javax.servlet.http.HttpServletRequest req,
PublicObject po) |
protected HashMap |
getOverwriteFMIOptions(javax.servlet.http.HttpServletRequest req,
boolean overwrite) |
Object |
getRequestContext(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res)
Get the "request context" object.
|
static oracle.ifs.protocols.dav.impl.security.TokenAuthInfo |
getTokenAuthInfo(javax.servlet.http.HttpServletRequest req) |
protected String |
getWebFoldersCharEncoding() |
protected void |
handleException(IfsException e,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
protected String |
handleStringEncoding(javax.servlet.http.HttpServletRequest req,
String s,
LibrarySession session) |
protected String |
handleStringEncoding(javax.servlet.http.HttpServletRequest req,
String s,
LibrarySession session,
String encoding) |
protected String |
handleURIEncoding(javax.servlet.http.HttpServletRequest req,
String originalURI,
String decodedURI,
LibrarySession session) |
void |
init(javax.servlet.ServletConfig config)
Initialize the servlet.
|
protected void |
initDavlets() |
protected boolean |
invokeExceptionHandlerDavlets(IfsException e,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
protected void |
invokePostprocessRequestDavlets(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.impl.RequestContext requestContext) |
protected void |
invokePreauthenticationDavlets(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
protected void |
invokePreprocessRequestDavlets(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.impl.RequestContext requestContext) |
protected static boolean |
isAcceptable(javax.servlet.http.HttpServletRequest req,
String mimeType) |
protected boolean |
isAnonymousAccessEnabled(javax.servlet.http.HttpServletRequest req,
String ifsPath) |
protected static boolean |
isByteRangeGet(javax.servlet.http.HttpServletRequest req) |
protected boolean |
isExecutableJsp(String jspPath,
javax.servlet.http.HttpServletRequest req) |
protected static boolean |
isFolder(PublicObject po) |
protected static boolean |
isIfModifiedSinceGet(javax.servlet.http.HttpServletRequest req) |
protected static boolean |
isIfUnmodifiedSinceGet(javax.servlet.http.HttpServletRequest req) |
protected boolean |
isJspAllowed(String jspDir) |
protected boolean |
isJspExecuteEnabled(javax.servlet.http.HttpServletRequest req) |
protected void |
listDirectory(javax.servlet.http.HttpServletResponse resp,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.impl.RequestContext rc) |
protected void |
loadParameters(IfsServer ifsServer) |
protected void |
loadParameters(javax.servlet.ServletConfig config) |
boolean |
matchIfHeaderItem(String resourceURI,
String lockToken,
oracle.ifs.protocols.dav.DavServlet.EntityTag eTag)
Check for a match for an "If" header item on a resource.
|
protected oracle.ifs.adk.filesystem.FileManager |
obtainFileManagerInstance(oracle.ifs.adk.security.IfsHttpLogin login) |
protected oracle.ifs.adk.security.IfsHttpLogin |
obtainIfsLogin(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse resp,
String ifsPath) |
protected void |
processJsp(oracle.ifs.protocols.dav.impl.RequestContext rc,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp) |
protected void |
processRequest(Object requestCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Process a request.
|
protected void |
redirectToJsp(String jspPath,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.impl.RequestContext rc) |
void |
releaseRequestContext(Object requestCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Release the request context object.
|
boolean |
reposCopy(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.DavXmlBody reqXml,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.StatusResponder responder,
String dest,
int depth,
boolean overwrite,
int propBehavior,
String[] keepaliveList,
oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader)
Repository-specific routine to service a COPY request.
|
protected boolean |
reposDelete(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.StatusResponder responder,
int depth,
oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader)
Respository-specific routine to service a DELETE request.
|
protected boolean |
reposLock(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.DavXmlBody reqXml,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.LockResponder responder,
int depth,
oracle.ifs.protocols.dav.DavServlet.LockTimeout[] timeouts,
int lockType,
int lockScope,
Node owner,
oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader)
Repository-specific routine to service a LOCK request.
|
boolean |
reposMove(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.DavXmlBody reqXml,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.StatusResponder responder,
String dest,
boolean overwrite,
int propBehavior,
String[] keepaliveList,
oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader)
Repository-specific routine to service a MOVE request.
|
protected boolean |
reposPropfind(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.DavXmlBody reqXml,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.PropfindResponder responder,
int depth,
Node[] propNames,
boolean getValues)
Repository-specific routine to service a PROPFIND request.
|
protected boolean |
reposProppatch(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
oracle.ifs.protocols.dav.DavXmlBody reqXml,
javax.servlet.http.HttpServletResponse resp,
oracle.ifs.protocols.dav.ProppatchResponder responder,
oracle.ifs.protocols.dav.DavServlet.ProppatchAction actions,
oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader)
Repository-specific routine to service a PROPPATCH request.
|
protected void |
reposUnlock(Object reqCtx,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
String lockToken)
Repository-specific routine to handle an UNLOCK request.
|
protected void |
service(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
Service an HTTP request.
|
protected boolean |
setDavPropertyValue(oracle.ifs.adk.filesystem.FileManager fm,
String ifsPath,
PublicObject po,
oracle.ifs.protocols.dav.DavServlet.ProppatchAction action) |
protected void |
setUpGuestLoginPool() |
protected void |
setUpHttpAuthManager() |
void |
start(IfsServer ifsServer)
-------------Methods required by the IfsManagedServlet interface ---------------
|
void |
stop() |
protected void |
writeHeaders(javax.servlet.http.HttpServletResponse resp,
String filename,
long length,
String contentType,
long modifyTime) |
doCopy, doCopyMove, doDelete, doLock, doMkcol, doMove, doPost, doPropfind, doProppatch, doPut, doUnlock, findInnerTag, findSiblingTag, findSingleChildTag, findSingleInnerTag, getAuthHeader, getAuthType, getBasicAuthInfo, getContextServletPathImpl, getDigestAuthInfo, getExpandedName, getVirtualPathInfo, isHexDigit, parseCodedURI, parseDepth, parseEntityTag, parseIfHeader, parseLockTokenHeader, parseQuotedString, parseStringListHeader, processRequest, reposUnlock, validateXmlRoot, valueOfHexDigit
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
public static String SERVLET_PARAMS_KEY
protected static final String CREATIONDATE_PROP
protected static final String DISPLAYNAME_PROP
protected static final String GETCONTENTLANGUAGE_PROP
protected static final String GETCONTENTLENGTH_PROP
protected static final String GETCONTENTTYPE_PROP
protected static final String GETETAG_PROP
protected static final String GETLASTMODIFIED_PROP
protected static final String LOCKDISCOVERY_PROP
protected static final String RESOURCETYPE_PROP
protected static final String SUPPORTEDLOCK_PROP
protected static final String EXPANDED_CREATIONDATE_PROP
protected static final String EXPANDED_DISPLAYNAME_PROP
protected static final String EXPANDED_GETCONTENTLANGUAGE_PROP
protected static final String EXPANDED_GETCONTENTLENGTH_PROP
protected static final String EXPANDED_GETCONTENTTYPE_PROP
protected static final String EXPANDED_GETETAG_PROP
protected static final String EXPANDED_GETLASTMODIFIED_PROP
protected static final String EXPANDED_LOCKDISCOVERY_PROP
protected static final String EXPANDED_RESOURCETYPE_PROP
protected static final String EXPANDED_SUPPORTEDLOCK_PROP
protected static final String EXPANDED_CREATIONDATE_PROP_MSFT
protected static final String EXPANDED_GETLASTMODIFIED_PROP_MSFT
protected static final String EXPANDED_LASTACCESSTIME_PROP_MSFT
protected static final String EXPANDED_FILEATTRIBUTES_PROP_MSFT
protected static final String[] DEFAULT_PROPERTIES
protected static final String[] EXPANDED_DEFAULT_PROPERTIES
protected static final Node[] DEFAULT_PROPERTIES_NODES
protected static final String LOGOUT_CUSTOM_VERB
protected static final String GETTOKENCRED_CUSTOM_VERB
public static final String FILESYNC_USER_AGENT
public static final String FMI_OPTION_HTTP_REQUEST
protected static final String FILESYNC_OBJECTID_PROP
protected static final String FILESYNC_EXPANDED_OBJECTID_PROP
protected static final String FILESYNC_ISSYNCABLE_PROP
protected static final String FILESYNC_EXPANDED_ISSYNCABLE_PROP
protected static final String FILESYNC_MD5DIGEST_PROP
protected static final String FILESYNC_EXPANDED_MD5DIGEST_PROP
public static final String DAV_LOCK_OWNER
public static final String DAV_LOCK_DEPTH
public static final String DAV_LOCK_TOKEN
public static final String DAV_LOCK_TOKEN_MATCH
public static final String POST_TUNNELING_HEADER
public static final String SERVER_VERSION_HEADER
public static final String IFS_OBJECT_ID
protected oracle.ifs.protocols.dav.impl.common.IfsDavServletParameters m_davServletParams
protected static String LOGIN_BEAN_NAME
protected static boolean FOLDER_BROWSE_ENABLED
protected static boolean JSP_EXECUTE_ENABLED
protected static String WEBFOLDERS_CHAR_ENCODING
protected static boolean PREVENT_NETSCAPE_CLEARTEXT_AUTH
protected long MINIMUM_LOCK_TIMEOUT
protected oracle.ifs.protocols.dav.impl.security.GuestLoginPool m_guestLoginPool
protected javax.servlet.ServletConfig m_servletConfig
protected javax.servlet.ServletContext m_servletContext
protected static final int BUFFER_SIZE
protected static String s_IfsServiceName
protected static IfsServer s_ifsServer
protected int m_status
protected oracle.ifs.adk.http.HttpAuthManagerInterface m_httpAuthManager
protected ArrayList m_davlets
protected ArrayList m_preAuthenticationDavlets
protected ArrayList m_preProcessRequestDavlets
protected ArrayList m_postProcessRequestDavlets
protected ArrayList m_exceptionHandlerDavlets
public static String getIfsServiceName()
public static Credential getGuestCredential() throws IfsException
IfsException
public void init(javax.servlet.ServletConfig config) throws javax.servlet.ServletException
oracle.ifs.protocols.dav.DavServlet
init
in interface javax.servlet.Servlet
init
in class oracle.ifs.protocols.dav.DavServlet
config
- the configuration object from the containerjavax.servlet.ServletException
- if the servlet cannot be initializedpublic void start(IfsServer ifsServer) throws Exception
Exception
public void stop()
public String getIfsServerName()
public void destroy()
oracle.ifs.protocols.dav.DavServlet
destroy
in interface javax.servlet.Servlet
destroy
in class oracle.ifs.protocols.dav.DavServlet
protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws IOException, javax.servlet.ServletException
oracle.ifs.protocols.dav.DavServlet
service
in class oracle.ifs.protocols.dav.DavServlet
req
- the HttpServletRequest object containing the parsed
representation of the client's requestresp
- the HttpServletResponse object which we'll use to
send the response back to the clientIOException
- if an input or output error is
detected while servicing the requestjavax.servlet.ServletException
- if the request cannot be handledprotected void processRequest(Object requestCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws IOException, javax.servlet.ServletException
oracle.ifs.protocols.dav.DavServlet
processRequest
in class oracle.ifs.protocols.dav.DavServlet
requestCtx
- the subclass-specific request context object,
originally obtained from getRequestContext()req
- the HttpServletRequest object containing the parsed
representation of the client's requestresp
- the HttpServletResponse object which we'll use to
send the response back to the clientIOException
- if an input or output error is
detected while servicing the requestjavax.servlet.ServletException
- if the request cannot be handledpublic Object getRequestContext(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
The purpose of the request context object is up to subclasses to define, but it is intended to provide subclass-specific context for the request beyond what is available directly in the HttpServletRequest object.
For example, a subclass might be implemented using a session-oriented repository. Such a subclass might keep a pool of active repository session objects, to save the cost of re-establishing a repository session on every request received from the same user. This type of subclass can override this method so that it searches the pool of active repository sessions for a match to the user ID associated with the current request and then returns the match, or returns a subclass-defined object that includes a reference to the matching session.
This routine is intended as a convenience for subclasses, so that a subclass do any work required to establish the context for the request in one place, then pass around an object containing that context information rather than having to synthesize it again in each individual method's service routine. This default implementation simply returns null, since the base class doesn't use a request context.
getRequestContext
in class oracle.ifs.protocols.dav.DavServlet
req
- the HttpServletRequest object containing the parsed
representation of the client's requestres
- the HttpServletResponse objectjavax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
public void releaseRequestContext(Object requestCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
oracle.ifs.protocols.dav.DavServlet
There will be a matching call to this method for every call to getRequestContext(). This method is called from the service() routine, after it has finished all of its work processing the request. Note that this routine will always be called once from service() for every request, even if an exception occurs while processing the request.
The HttpServletRequest and HttpServletResponse objects associated with the current request are provided for completeness, but note that the request will already have been processed and the response will already have been sent by the time this routine is called. This routine should not generally add or change information in the response, because data might already have been transmitted to the client by the time this routine is called.
releaseRequestContext
in class oracle.ifs.protocols.dav.DavServlet
requestCtx
- the subclass-specific request context object,
originally obtained from getRequestContext()req
- the HttpServletRequest containing the request
informationresp
- the HttpServletResponse for sending the response to
the clientprotected void doUnknown(Object requestCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws IOException, javax.servlet.ServletException
oracle.ifs.protocols.dav.DavServlet
This default implementation simply returns a BAD REQUEST error response to the client. Subclasses which wish to implement an extended set of methods can override this routine to check the request method against the extended set and dispatch processing accordingly.
doUnknown
in class oracle.ifs.protocols.dav.DavServlet
requestCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientIOException
- if an input or output error is detected
while servicing the requestjavax.servlet.ServletException
- if the request cannot be handledprotected void doBadRequest(Object requestCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, int err) throws IOException
oracle.ifs.protocols.dav.DavServlet
doBadRequest
in class oracle.ifs.protocols.dav.DavServlet
requestCtx
- the "request context" object (see
getRequestContext())req
- the servlet request object containing the parsed
requestresp
- the servlet response object which we'll use to send
the response back to the clienterr
- the ERROR_xxx error code constant describing the type
of problem that occurred; we ignore this parameter, but
subclasses can use it to distinguish among different types of bad
requests if neededIOException
- if an input or output error is detected
while servicing the requestpublic boolean reposCopy(Object reqCtx, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.DavXmlBody reqXml, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.StatusResponder responder, String dest, int depth, boolean overwrite, int propBehavior, String[] keepaliveList, oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader) throws IOException, javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
doCopyMove(), the generic handler for COPY and MOVE requests, calls this routine after parsing a COPY request. Subclasses can implement this routine, rather than overriding doCopyMove() itself, if they do not need to perform special parsing of the request (most repositories should not have any need to override the generic request parsing, since the request format is generic to webdav and thus should be independent of the repository implementation).
If this routine returns true, doCopyMove() will automatically generate the XML text of the response by "unparsing" the information in the responder object. So, to build the response, this routine merely needs to make the appropriate calls to the responder object to fill in the status information.
This routine is abstract, so each subclass must provide an implementation. Note, however, that if the subclass overrides doCopyMove(), and the overridden version doesn't either invoke the inherited version or invoke reposCopy(), then reposCopy() will not actually be required, in which case a dummy implementation can be provided.
reposCopy
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientreqXml
- the DavXmlBody object containing the parsed
representation of the XML making up the body of the request, or
null if no XML body is present (the same information is contained
in a more digested format in the other parameters, but the
original XML is also provided in case the subclass needs to
perform any additional analysis; in most cases this can be
ignored in favor of the higher-level parameters)resp
- the HttpServletResponse object that can be used to
send the result back to the client; note that this can be ignored
if the responder object is used to send back a
multi-status responseresponder
- the StatusResponder object to be used to build
the responsedest
- the contents of the Destination header in the
request, giving the URI of the destination of the COPY operationdepth
- the DEPTH_xxx value specified in the request header,
indicating for a COPY whether to copy only the container
(DEPTH_ZERO) or the container and its entire subtree
(DEPTH_INFINITY)overwrite
- the value of the Overwrite header in the
request, indicating whether or not we should overwrite an
existing object at the destination URIpropBehavior
- a PROPBEHAVIOR_xxx value specifying how
properties are to be treated when they cannot be reproduced
identically on the destination objectkeepaliveList
- if propBehavior is
PROPBEHAVIOR_KEEPALIVE_LIST, this gives a list of strings
containing the names of the properties that the request listed as
mandatory for keeping alive on the destination object; this
parameter is null for any other propBehavior valueifHeader
- an IfHeader object containing the parsed
representation of the "If" header (this will never be null; if
there's no "If" header in the request, an empty IfHeader object
will be provided)IOException
- if an input or output error is detected
while servicing the requestjavax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected boolean reposDelete(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.StatusResponder responder, int depth, oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
doDelete() calls this routine after performing some generic processing of the request. This routine must carry out the deletion in the repository.
Note that the WebDAV specification requires that we reject the request if a Depth value other than "infinity" is specified and the target object is a collection. This routine must determine if the object to be deleted is a collection, and if so must verify that the depth is "infinity"; the routine should send back a BAD REQUEST error (status 400) if another depth is specified. The depth must be ignored for non-containers.
This routine is abstract, so it must be implemented in each subclass. Note that if a subclass overrides doDelete(), and the overriding implementation neither calls this routine nor inherits the default implementation, then reposDelete() will never actually be called and hence can have a dummy implementation.
The response to a DELETE request might be a simple status response or an XML-based <multistatus> response. For a simple status response, this routine should simply use the resp object to send the response using the normal HTTP mechanisms, and return false to so indicate. For a multi-status response, the routine should populate the responder object and return true; we'll take care of turning the responder's contents into XML text and sending it back to the client.
reposDelete
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object that can be used to
send the result back to the client; note that this can be ignored
if the responder object is used to send back a
multi-status responseresponder
- a StatusResponder object that can be used to
send a <multistatus> response back to the client; if this
is used, the routine must return true, otherwise it must return
falseifHeader
- an IfHeader object containing the parsed
representation of the "If" header (this will never be null; if
there's no "If" header in the request, an empty IfHeader object
will be provided)javax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doGet(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
This routine is abstract and must be implemented for each repository-specific subclass.
doGet
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doHead(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
This routine is abstract and must be implemented for each repository-specific subclass.
doHead
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doGetOrHead(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, boolean doGet) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
javax.servlet.ServletException
oracle.ifs.protocols.dav.impl.common.TunneledIfsException
IOException
protected boolean reposLock(Object reqCtx, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.DavXmlBody reqXml, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.LockResponder responder, int depth, oracle.ifs.protocols.dav.DavServlet.LockTimeout[] timeouts, int lockType, int lockScope, Node owner, oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
doLock() calls this routine after parsing the request. Subclasses can implement this routine, rather than overriding doLock() itself, if they do not need to perform special parsing of the request (most repositories should not have any need to override the generic request parsing, since the request format is generic to webdav and thus should be independent of the repository implementation).
If this routine returns true, doLock will automatically generate the XML text of the response by "unparsing" the information in the responder object. So, to build the response, this routine merely needs to make the appropriate calls to the responder object to fill in the status information.
This routine is abstract, so each subclass must provide an implementation. Note, however, that if the subclass overrides doLock(), and the overridden version doesn't either invoke the inherited version or invoke reposLock(), then reposLock() will not actually be required, in which case a dummy implementation can be provided.
reposLock
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientreqXml
- the DavXmlBody object containing the parsed
representation of the XML making up the body of the request, or
null if no XML body is present (the same information is contained
in a more digested format in the other parameters, but the
original XML is also provided in case the subclass needs to
perform any additional analysis; in most cases this can be
ignored in favor of the higher-level parameters)resp
- the HttpServletResponse object that can be used to
send the result back to the client; note that this can be ignored
if the responder object is used to send back a
multi-status responseresponder
- the LockResponder object to be used to build the
responsedepth
- the DEPTH_xxx value specified in the request header,
whether to lock just the resource (DEPTH_ZERO) or the resource
and all of its children, if the resource is a collection
(DEPTH_INFINITY); this should be ignored if the resource is not a
collectiontimeouts
- an array of LockTimeout objects specifying the
timeout values requested by the client, in the order in which
they appear in the requestlockType
- a LOCKTYPE_xxx value specifying the type of lock
the client requestedlockScope
- a LOCKSCOPE_xxx value specifying the scope the
client requestedowner
- an org.w3c.dom.Node object with the parse tree node
for the <owner> tag in the request, or null if no
<owner> tag was specified; the children of this tag
give the owner information specified in the client's request.
The contents of this tag can be a simple text node, or can
contain additional nested elements, such as a <DAV:href>
tag with a text subnode.ifHeader
- an IfHeader object providing the parsed
representation of the "If" header from the request (this is
significant for a LOCK request when there's no XML body for the
request, which indicates that this is a request to update the
lock specified in the "If" header)javax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doMkcol(Object reqCtx, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.DavXmlBody reqXml, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
doMkcol
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientreqXml
- the DavXmlBody object containing the parsed
representation of the XML making up the body of the request, or
null if no XML body is presentresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
public boolean reposMove(Object reqCtx, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.DavXmlBody reqXml, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.StatusResponder responder, String dest, boolean overwrite, int propBehavior, String[] keepaliveList, oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader) throws IOException, javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
doCopyMove(), the generic handler for COPY and MOVE requests, calls this routine after parsing a MOVE request. Subclasses can implement this routine, rather than overriding doCopyMove() itself, if they do not need to perform special parsing of the request (most repositories should not have any need to override the generic request parsing, since the request format is generic to webdav and thus should be independent of the repository implementation).
If this routine returns true, doCopyMove() will automatically generate the XML text of the response by "unparsing" the information in the responder object. So, to build the response, this routine merely needs to make the appropriate calls to the responder object to fill in the status information.
This routine is abstract, so each subclass must provide an implementation. Note, however, that if the subclass overrides doCopyMove(), and the overridden version doesn't either invoke the inherited version or invoke reposMove(), then reposMove() will not actually be required, in which case a dummy implementation can be provided.
reposMove
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientreqXml
- the DavXmlBody object containing the parsed
representation of the XML making up the body of the request, or
null if no XML body is present (the same information is contained
in a more digested format in the other parameters, but the
original XML is also provided in case the subclass needs to
perform any additional analysis; in most cases this can be
ignored in favor of the higher-level parameters)resp
- the HttpServletResponse object that can be used to
send the result back to the client; note that this can be ignored
if the responder object is used to send back a
multi-status responseresponder
- the StatusResponder object to be used to build
the responsedest
- the contents of the Destination header in the
request, giving the URI of the destination of the MOVE operationoverwrite
- the value of the Overwrite header in the
request, indicating whether or not we should overwrite an
existing object at the destination URIpropBehavior
- a PROPBEHAVIOR_xxx value specifying how
properties are to be treated when they cannot be reproduced
identically on the destination objectkeepaliveList
- if propBehavior is
PROPBEHAVIOR_KEEPALIVE_LIST, this gives a list of strings
containing the names of the properties that the request listed as
mandatory for keeping alive on the destination object; this
parameter is null for any other propBehavior valueifHeader
- an IfHeader object containing the parsed
representation of the "If" header (this will never be null; if
there's no "If" header in the request, an empty IfHeader object
will be provided)IOException
- if an input or output error is detected
while servicing the requestjavax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doOptions(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
doOptions
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doPost(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
doPost
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected boolean reposPropfind(Object reqCtx, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.DavXmlBody reqXml, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.PropfindResponder responder, int depth, Node[] propNames, boolean getValues) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
doPropfind() calls this routine after parsing the request. Subclasses can implement this routine, rather than overriding doPropfind() itself, if they do not need to perform special parsing of the request (most repositories should not have any need to override the generic request parsing, since the request format is generic to webdav and thus should be independent of the repository implementation).
If this routine returns true, doPropfind will automatically generate the XML text of the response by "unparsing" the information in the responder object. So, to build the response, this routine merely needs to make the appropriate calls to the responder object to fill in the property and status information.
This routine is abstract, so each subclass must provide an implementation. Note, however, that if the subclass overrides doPropfind(), and the overridden version doesn't either invoke the inherited version or invoke reposPropfind(), then reposPropfind() will not actually be required, in which case a dummy implementation can be provided.
reposPropfind
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientreqXml
- the DavXmlBody object containing the parsed
representation of the XML making up the body of the request, or
null if no XML body is present (the same information is contained
in a more digested format in propNames and
getValues, but the original XML is also provided in case
the subclass needs to perform any additional analysis; in most
cases this can be ignored in favor of the higher-level parameters)resp
- the HttpServletResponse object that can be used to
send the result back to the client; note that this can be ignored
if the responder object is used to send back a
multi-status responseresponder
- the PropfindResponder object to be used to build
the responsedepth
- the DEPTH_xxx value specified in the request header,
indicating how to respond if the resource is a collection:
DEPTH_ZERO indicates that we should retrieve properties of the
collection itself, DEPTH_ONE indicates that we should retrieve
the properties of the collection itself plus those of each of the
immediate children of the collection; DEPTH_INFINITY indicates
that we should retrieve properties of the resource itself plus
those of each immediate child of the collection and all of their
children, recursively down through the entire treepropNames
- the list of names of properties to retrieve,
with namespace qualifiers fully expanded; if propNames
is null, all properties of the resource are to be retrievedgetValues
- true if we are to retrieve the value of
each requested property, false if we are to retrieve
only the name of each requested propertyjavax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected boolean reposProppatch(Object reqCtx, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.DavXmlBody reqXml, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.ProppatchResponder responder, oracle.ifs.protocols.dav.DavServlet.ProppatchAction actions, oracle.ifs.protocols.dav.DavServlet.IfHeader ifHeader) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
doProppatch() calls this routine after parsing the request. Subclasses can implement this routine, rather than overriding doProppatch() itself, if they do not need to perform special parsing of the request (most repositories should not have any need to override the generic request parsing, since the request format is generic to webdav and thus should be independent of the server implementation).
If this routine returns true, doProppatch will automatically generate the XML text of the response by "unparsing" the information in the responder object. So, to build the response, this routine merely needs to make the appropriate calls to the responder object to fill in the property and status information.
This routine is abstract, so each subclass must provide an implementation. Note, however, that if the subclass overrides doProppatch(), and the overridden version doesn't either invoke the inherited version or invoke reposProppatch(), then reposProppatch() will not actually be required, in which case a dummy implementation can be provided.
reposProppatch
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientreqXml
- the DavXmlBody object containing the parsed
representation of the XML making up the body of the request, or
null if no XML body is present (this is provided in case the
subclass needs to perform further parsing of the XML, but in most
cases this parameter can be ignored since a more digested version
of the same information is provided in the actions list)resp
- the HttpServletResponse object that can be used to
send the result back to the client; note that this can be ignored
if the responder object is used to send back a
multi-status responseresponder
- the ProppatchResponder object to be used to
build the responseactions
- the head of the list of ProppatchAction objects
specifying the actions to perform in the request; this list is in
the same order as the original XML body, so the routine should
carry out the actions in the order of the list elementsifHeader
- an IfHeader object containing the parsed
representation of the "If" header (this will never be null; if
there's no "If" header in the request, an empty IfHeader object
will be provided)javax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doPut(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
doPut
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is
detected while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void doTrace(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException
oracle.ifs.protocols.dav.DavServlet
doTrace
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientjavax.servlet.ServletException
- if the request cannot be handledoracle.ifs.protocols.dav.impl.common.TunneledIfsException
protected void reposUnlock(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, String lockToken) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
oracle.ifs.protocols.dav.DavServlet
Legacy implementations may override this method. New implementations should override the version that takes an ifHeader. However, if the subclass overrides doUnlock(), and neither inherits the default doUnlock() implementation nor calls this routine directly, then this routine will never be called and hence can have a dummy implementation in the subclass
reposUnlock
in class oracle.ifs.protocols.dav.DavServlet
reqCtx
- the "request context" object (see
getRequestContext())req
- the HttpServletRequest object containing the request
from the clientresp
- the HttpServletResponse object to be used to return
the response to the clientlockToken
- the lock token URI specified in the "Lock-Token"
header; the scheme prefix will be included in the string (the
scheme will normally be "opaquelocktoken:", since this is the
only scheme currently defined in the webdav rfc, but we leave the
scheme prefix in place to allow repositories to implement
alternative lock token schemes and in case other standard schemes
are defined in the future)javax.servlet.ServletException
- if the request cannot be handledIOException
- if an input or output error is detected
while servicing the requestoracle.ifs.protocols.dav.impl.common.TunneledIfsException
public boolean matchIfHeaderItem(String resourceURI, String lockToken, oracle.ifs.protocols.dav.DavServlet.EntityTag eTag)
oracle.ifs.protocols.dav.DavServlet
Two types of items can be used in an "If" header:
This method will normally be called with either an entity tag or a state token, but not both; thus, a null value for these arguments must be ignored.x
matchIfHeaderItem
in class oracle.ifs.protocols.dav.DavServlet
resourceURI
- the URI of the resource to be checkedlockToken
- the state token string to check, or null if no
state token string is to be checked; note that this string will
contain any "scheme" prefix supplied by the client (for lock
tokens, this is normally "opaquelocktoken:")eTag
- the EntityTag object describing the entity tag
to be checked, or null if no entity tag is to be checkedprotected void doLogout(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
protected void doGettokencred(Object reqCtx, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, oracle.ifs.protocols.dav.impl.common.TunneledIfsException, IOException
javax.servlet.ServletException
oracle.ifs.protocols.dav.impl.common.TunneledIfsException
IOException
protected void loadParameters(javax.servlet.ServletConfig config)
protected void loadParameters(IfsServer ifsServer)
protected void setUpGuestLoginPool() throws IfsException
IfsException
protected void setUpHttpAuthManager() throws ClassNotFoundException, IllegalAccessException, InstantiationException
protected void initDavlets()
protected void destroyDavlets()
protected oracle.ifs.adk.security.IfsHttpLogin obtainIfsLogin(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse resp, String ifsPath) throws oracle.ifs.protocols.dav.security.AuthenticationFormatException, oracle.ifs.protocols.dav.impl.security.InvalidNonceException, IfsException
oracle.ifs.protocols.dav.security.AuthenticationFormatException
oracle.ifs.protocols.dav.impl.security.InvalidNonceException
IfsException
protected oracle.ifs.adk.filesystem.FileManager obtainFileManagerInstance(oracle.ifs.adk.security.IfsHttpLogin login) throws IfsException
IfsException
protected void handleException(IfsException e, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws IOException
IOException
protected void getDavPropertyValue(oracle.ifs.adk.filesystem.FileManager fm, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.impl.common.IfsTreeTraverser.TraversedNode tn, Node property, oracle.ifs.protocols.dav.PropfindResponder responder, Element responseGroup, javax.servlet.ServletContext servletContext, boolean ignoreNotFound) throws IfsException
IfsException
protected boolean setDavPropertyValue(oracle.ifs.adk.filesystem.FileManager fm, String ifsPath, PublicObject po, oracle.ifs.protocols.dav.DavServlet.ProppatchAction action) throws IfsException
IfsException
protected static boolean isFolder(PublicObject po)
protected boolean isJspAllowed(String jspDir)
protected String doJspLookup(oracle.ifs.adk.security.IfsHttpLogin login, PublicObject po)
protected void listDirectory(javax.servlet.http.HttpServletResponse resp, javax.servlet.http.HttpServletRequest req, oracle.ifs.protocols.dav.impl.RequestContext rc) throws IOException, IfsException
IOException
IfsException
protected static boolean isAcceptable(javax.servlet.http.HttpServletRequest req, String mimeType)
protected static boolean isIfModifiedSinceGet(javax.servlet.http.HttpServletRequest req)
protected static boolean isIfUnmodifiedSinceGet(javax.servlet.http.HttpServletRequest req)
protected static boolean isByteRangeGet(javax.servlet.http.HttpServletRequest req)
protected void writeHeaders(javax.servlet.http.HttpServletResponse resp, String filename, long length, String contentType, long modifyTime)
protected String handleURIEncoding(javax.servlet.http.HttpServletRequest req, String originalURI, String decodedURI, LibrarySession session) throws IfsException
IfsException
protected String handleStringEncoding(javax.servlet.http.HttpServletRequest req, String s, LibrarySession session) throws IfsException
IfsException
protected String handleStringEncoding(javax.servlet.http.HttpServletRequest req, String s, LibrarySession session, String encoding) throws IfsException
IfsException
public static String convertStringToInferredEncoding(javax.servlet.http.HttpServletRequest req, String s, LibrarySession session, boolean useUserProfile) throws IfsException
IfsException
protected void redirectToJsp(String jspPath, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.impl.RequestContext rc) throws IOException, IfsException
IOException
IfsException
protected void processJsp(oracle.ifs.protocols.dav.impl.RequestContext rc, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws oracle.ifs.protocols.dav.impl.common.TunneledIfsException, javax.servlet.ServletException, IOException
oracle.ifs.protocols.dav.impl.common.TunneledIfsException
javax.servlet.ServletException
IOException
protected String getWebFoldersCharEncoding()
protected boolean isJspExecuteEnabled(javax.servlet.http.HttpServletRequest req)
protected boolean isExecutableJsp(String jspPath, javax.servlet.http.HttpServletRequest req)
protected boolean getIsFileSyncable(oracle.ifs.adk.filesystem.FileManager fm, javax.servlet.http.HttpServletRequest req, PublicObject po) throws IfsException
IfsException
protected String getContextServletPath(javax.servlet.http.HttpServletRequest req)
getContextServletPath
in class oracle.ifs.protocols.dav.DavServlet
public static oracle.ifs.protocols.dav.impl.security.TokenAuthInfo getTokenAuthInfo(javax.servlet.http.HttpServletRequest req) throws oracle.ifs.protocols.dav.security.AuthenticationFormatException
oracle.ifs.protocols.dav.security.AuthenticationFormatException
protected HashMap getDefaultFMIOptions(javax.servlet.http.HttpServletRequest req)
protected HashMap getOverwriteFMIOptions(javax.servlet.http.HttpServletRequest req, boolean overwrite)
protected void addLockDiscoveryElement(LockObject lo, oracle.ifs.adk.filesystem.FileManager fm, oracle.ifs.protocols.dav.PropResponder responder, Element parentElt, javax.servlet.http.HttpServletRequest req) throws IfsException
IfsException
protected void invokePreauthenticationDavlets(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, IfsException
javax.servlet.ServletException
IfsException
protected void invokePreprocessRequestDavlets(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.impl.RequestContext requestContext) throws javax.servlet.ServletException, IfsException
javax.servlet.ServletException
IfsException
protected void invokePostprocessRequestDavlets(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, oracle.ifs.protocols.dav.impl.RequestContext requestContext) throws javax.servlet.ServletException, IfsException
javax.servlet.ServletException
IfsException
protected boolean invokeExceptionHandlerDavlets(IfsException e, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
protected boolean isAnonymousAccessEnabled(javax.servlet.http.HttpServletRequest req, String ifsPath)
Copyright © 2023. All rights reserved.