/** * The HEAD method * * @param request * @param response * @param resource * @throws IOException */ protected void doHead(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException { spoolResource(request, response, resource, false); }
doGet(request, response, resource); break; case DavMethods.DAV_HEAD: doHead(request, response, resource); break; case DavMethods.DAV_PROPFIND: doPropFind(request, response, resource); break; case DavMethods.DAV_PROPPATCH: doPropPatch(request, response, resource); break; case DavMethods.DAV_POST: doPost(request, response, resource); break; case DavMethods.DAV_PUT: doPut(request, response, resource); break; case DavMethods.DAV_DELETE: doDelete(request, response, resource); break; case DavMethods.DAV_COPY: doCopy(request, response, resource); break; case DavMethods.DAV_MOVE: doMove(request, response, resource); break; case DavMethods.DAV_MKCOL: doMkCol(request, response, resource); break;
@Override public void init( ServletConfig servletConfig ) throws ServletException { super.init( servletConfig ); initServers( servletConfig ); }
/** * The MOVE method * * @param request * @param response * @param resource * @throws IOException * @throws DavException */ protected void doMove(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { DavResource destResource = getResourceFactory().createResource(request.getDestinationLocator(), request, response); int status = validateDestination(destResource, request, true); if (status > DavServletResponse.SC_NO_CONTENT) { response.sendError(status); return; } resource.move(destResource); response.setStatus(status); }
@Override public void destroy() { resourceFactory = null; locatorFactory = null; sessionProvider = null; WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext( getServletContext() ); if ( wac instanceof ConfigurableApplicationContext ) { ( (ConfigurableApplicationContext) wac ).close(); } super.destroy(); } }
@Override protected boolean execute(WebdavRequest request, WebdavResponse response, int method, DavResource resource) throws ServletException, IOException, DavException { logger.debug(String.format("Resource: [%s] Method: [%s]", resource.getDisplayName(), request.getMethod())); return super.execute(request, response, method, resource); }
/** * Sets the "WWW-Authenticate" header and writes the appropriate error * to the given webdav response. * * @param request The webdav request. * @param response The webdav response. * @param error The DavException that leads to the unauthorized response. * @throws IOException */ protected void sendUnauthorized(WebdavRequest request, WebdavResponse response, DavException error) throws IOException { response.setHeader("WWW-Authenticate", getAuthenticateHeaderValue()); if (error == null || error.getErrorCode() != HttpServletResponse.SC_UNAUTHORIZED) { response.sendError(HttpServletResponse.SC_UNAUTHORIZED); } else { response.sendError(error.getErrorCode(), error.getStatusPhrase()); } }
/** * The UNBIND method * * @param request * @param response * @param resource the collection resource from which a member will be removed * @throws IOException * @throws DavException */ protected void doUnbind(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { UnbindInfo unbindInfo = request.getUnbindInfo(); DavResource srcResource = getResourceFactory().createResource(request.getMemberLocator(unbindInfo.getSegment()), request, response); resource.removeMember(srcResource); }
@Override public void init() throws ServletException { super.init(); // authenticate header authenticate_header = getInitParameter(INIT_PARAM_AUTHENTICATE_HEADER); if (authenticate_header == null) { authenticate_header = DEFAULT_AUTHENTICATE_HEADER; } log.info(INIT_PARAM_AUTHENTICATE_HEADER + " = " + authenticate_header); // read csrf protection params String csrfParam = getInitParameter(INIT_PARAM_CSRF_PROTECTION); csrfUtil = new CSRFUtil(csrfParam); log.info(INIT_PARAM_CSRF_PROTECTION + " = " + csrfParam); //create absolute URI hrefs.. String param = getInitParameter(INIT_PARAM_CREATE_ABSOLUTE_URI); if (param != null) { createAbsoluteURI = Boolean.parseBoolean(param); } log.info(INIT_PARAM_CREATE_ABSOLUTE_URI + " = " + createAbsoluteURI); }
/** * The MKCOL method * * @param request * @param response * @param resource * @throws IOException * @throws DavException */ protected void doMkCol(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { DavResource parentResource = resource.getCollection(); if (parentResource == null || !parentResource.exists() || !parentResource.isCollection()) { // parent does not exist or is not a collection response.sendError(DavServletResponse.SC_CONFLICT); return; } // shortcut: mkcol is only allowed on deleted/non-existing resources if (resource.exists()) { response.sendError(DavServletResponse.SC_METHOD_NOT_ALLOWED); return; } if (request.getContentLength() > 0 || request.getHeader("Transfer-Encoding") != null) { parentResource.addMember(resource, getInputContext(request, request.getInputStream())); } else { parentResource.addMember(resource, getInputContext(request, null)); } response.setStatus(DavServletResponse.SC_CREATED); }
doGet(request, response, resource); break; case DavMethods.DAV_HEAD: doHead(request, response, resource); break; case DavMethods.DAV_PROPFIND: doPropFind(request, response, resource); break; case DavMethods.DAV_PROPPATCH: doPropPatch(request, response, resource); break; case DavMethods.DAV_POST: doPost(request, response, resource); break; case DavMethods.DAV_PUT: doPut(request, response, resource); break; case DavMethods.DAV_DELETE: doDelete(request, response, resource); break; case DavMethods.DAV_COPY: doCopy(request, response, resource); break; case DavMethods.DAV_MOVE: doMove(request, response, resource); break; case DavMethods.DAV_MKCOL: doMkCol(request, response, resource); break;
@Override public void init( ServletConfig servletConfig ) throws ServletException { super.init( servletConfig ); try { initServers( servletConfig ); } catch ( RepositoryAdminException e ) { log.error( e.getMessage(), e ); throw new ServletException( e.getMessage(), e ); } }
/** * The MOVE method * * @param request * @param response * @param resource * @throws IOException * @throws DavException */ protected void doMove(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { DavResource destResource = getResourceFactory().createResource(request.getDestinationLocator(), request, response); int status = validateDestination(destResource, request, true); if (status > DavServletResponse.SC_NO_CONTENT) { response.sendError(status); return; } resource.move(destResource); response.setStatus(status); }
/** * The GET method * * @param request * @param response * @param resource * @throws IOException */ protected void doGet(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { spoolResource(request, response, resource, true); }
/** * Sets the "WWW-Authenticate" header and writes the appropriate error * to the given webdav response. * * @param request The webdav request. * @param response The webdav response. * @param error The DavException that leads to the unauthorized response. * @throws IOException */ protected void sendUnauthorized(WebdavRequest request, WebdavResponse response, DavException error) throws IOException { response.setHeader("WWW-Authenticate", getAuthenticateHeaderValue()); if (error == null || error.getErrorCode() != HttpServletResponse.SC_UNAUTHORIZED) { response.sendError(HttpServletResponse.SC_UNAUTHORIZED); } else { response.sendError(error.getErrorCode(), error.getStatusPhrase()); } }
/** * The UNBIND method * * @param request * @param response * @param resource the collection resource from which a member will be removed * @throws IOException * @throws DavException */ protected void doUnbind(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { UnbindInfo unbindInfo = request.getUnbindInfo(); DavResource srcResource = getResourceFactory().createResource(request.getMemberLocator(unbindInfo.getSegment()), request, response); resource.removeMember(srcResource); }
@Override public void init() throws ServletException { super.init(); // authenticate header authenticate_header = getInitParameter(INIT_PARAM_AUTHENTICATE_HEADER); if (authenticate_header == null) { authenticate_header = DEFAULT_AUTHENTICATE_HEADER; } log.info(INIT_PARAM_AUTHENTICATE_HEADER + " = " + authenticate_header); // read csrf protection params String csrfParam = getInitParameter(INIT_PARAM_CSRF_PROTECTION); csrfUtil = new CSRFUtil(csrfParam); log.info(INIT_PARAM_CSRF_PROTECTION + " = " + csrfParam); //create absolute URI hrefs.. String param = getInitParameter(INIT_PARAM_CREATE_ABSOLUTE_URI); if (param != null) { createAbsoluteURI = Boolean.parseBoolean(param); } log.info(INIT_PARAM_CREATE_ABSOLUTE_URI + " = " + createAbsoluteURI); }
@Override public void init() throws ServletException { super.init(); setLocatorFactory(new LocatorFactoryImplEx("")); setResourceFactory(new XWikiDavResourceFactory(getServletContext())); setDavSessionProvider(new XWikiDavSessionProvider()); }
/** * The GET method * * @param request * @param response * @param resource * @throws IOException */ protected void doGet(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException, DavException { spoolResource(request, response, resource, true); }
/** * The HEAD method * * @param request * @param response * @param resource * @throws IOException */ protected void doHead(WebdavRequest request, WebdavResponse response, DavResource resource) throws IOException { spoolResource(request, response, resource, false); }