@PostConstruct private void activate() throws IOException { if (wcmMode == WCMMode.DISABLED) { response.sendError(HttpServletResponse.SC_FORBIDDEN); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException { Authenticator authenticator = this.authenticator; if (authenticator != null) { try { authenticator.login(request, response); return; } catch (IllegalStateException ise) { log.error("doGet: Response already committed, cannot login"); return; } catch (NoAuthenticationHandlerException nahe) { log.error("doGet: No AuthenticationHandler to login registered"); } } else { log.error("doGet: Authenticator service missing, cannot request authentication"); } // fall back to forbid access response.sendError(HttpServletResponse.SC_FORBIDDEN, "Cannot login"); }
/** * Helper method which causes an appropriate HTTP response to be sent for an * unhandled HTTP request method. In case of HTTP/1.1 a 405 status code * (Method Not Allowed) is returned, otherwise a 400 status (Bad Request) is * returned. * * @param request The HTTP request from which the method and protocol values * are extracted to build the appropriate message. * @param response The HTTP response to which the error status is sent. * @throws IOException Thrown if the status cannot be sent to the client. */ protected void handleMethodNotImplemented(@NotNull SlingHttpServletRequest request, @NotNull SlingHttpServletResponse response) throws IOException { String protocol = request.getProtocol(); String msg = "Method " + request.getMethod() + " not supported"; if (protocol.endsWith("1.1")) { // for HTTP/1.1 use 405 Method Not Allowed response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg); } else { // otherwise use 400 Bad Request response.sendError(HttpServletResponse.SC_BAD_REQUEST, msg); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException { Resource resource = request.getResource(); // cannot handle the request for missing resources if (resource instanceof NonExistingResource) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Resource not found at path " + resource.getPath()); } else { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Cannot find servlet to handle resource " + resource.getPath()); } }
private void handle(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { final SlingMvcServletRequest slingRequest = new SlingMvcServletRequest(request); for (BundleSpecificDispatcherServlet context : this.mvcCapableBundles.values()) { if (context.hasHandlerFor(slingRequest)) { context.service(slingRequest, response); return; } } if (this.logger.isDebugEnabled()) { this.logger.debug("No controller found for request " + request + "."); } response.sendError(SC_NOT_FOUND); }
@Override public void processGet(final ComponentServletRequest request) throws ServletException, IOException { final SlingHttpServletRequest slingRequest = request.getSlingRequest(); final SlingHttpServletResponse slingResponse = request.getSlingResponse(); WCMMode.DISABLED.toRequest(slingRequest); try { final List<Paragraph> paragraphs = getParagraphs(request); if (paragraphs != null) { LOG.debug("{} paragraphs found on page", paragraphs.size()); writeJsonResponse(slingResponse, ImmutableMap.of("paragraphs", paragraphs)); } else { LOG.info("null returned, indicating a lack of page or a lack of content"); slingResponse.sendError(HttpServletResponse.SC_NOT_FOUND); } } catch (RepositoryException e) { LOG.error("error requesting paragraph HTML for contained components", e); slingResponse.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } }
@Override protected void doDelete(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { // get parameters String configName = request.getParameter(RP_CONFIGNAME); if (StringUtils.isBlank(configName)) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } // delete data try { configManager.deleteConfiguration(request.getResource(), configName); } catch (ConfigurationPersistenceAccessDeniedException ex) { sendForbiddenWithMessage(response, ex.getMessage()); } catch (ConfigurationPersistenceException ex) { log.warn("Unable to delete data for " + configName, ex); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to delete data: " + ex.getMessage()); } /*CHECKSTYLE:OFF*/ catch (Exception ex) { /*CHECKSTYLE:ON*/ log.error("Error deleting configuration for " + configName, ex); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, ex.getMessage()); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { final Command cmd = new Command(request); response.setHeader("Content-Type", " application/json; charset=UTF-8"); try { response.getWriter().append(quicklyEngine.execute(request, response, cmd).toString()); } catch (Exception e) { response.sendError(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.getWriter().print("{\"status:\": \"error\"}"); } } }
@PostConstruct private void activate() throws IOException { // resolve link of redirect page String redirectUrl = linkHandler.get(resource).buildUrl(); // in publish mode redirect to target if (wcmMode == WCMMode.DISABLED) { renderPage = false; if (StringUtils.isNotEmpty(redirectUrl)) { if (StringUtils.equals(redirectStatus, Integer.toString(HttpServletResponse.SC_MOVED_TEMPORARILY))) { response.sendRedirect(redirectUrl); } else { response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("Location", redirectUrl); } } else { response.sendError(HttpServletResponse.SC_NOT_FOUND); } } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { Resource contentResource = request.getResourceResolver().getResource(request.getResource(), JcrConstants.JCR_CONTENT); if (contentResource == null) { log.error("No content for page {}", request.getResource()); response.sendError(HttpServletResponse.SC_NOT_FOUND, "no content"); return; } RequestDispatcher requestDispatcher = request.getRequestDispatcher(contentResource); if (requestDispatcher != null) { requestDispatcher.include(request, response); } else { log.error("Failed to get request dispatcher for content of {}", request.getResource()); throw new ServletException("No Content"); } } }
@PostConstruct private void activate() throws IOException { // resolve link of redirect page String redirectUrl = linkHandler.get(resource).buildUrl(); // in preview/publish mode redirect to target if ((wcmMode == WCMMode.DISABLED || wcmMode == WCMMode.PREVIEW) && StringUtils.isNotEmpty(redirectUrl)) { if (StringUtils.equals(redirectStatus, "301")) { response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("Location", redirectUrl); } else { response.sendRedirect(redirectUrl); } renderPage = false; } else if (wcmMode == WCMMode.DISABLED) { response.sendError(HttpServletResponse.SC_NOT_FOUND); renderPage = false; } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { // get binary data resource Resource resource = getBinaryDataResource(request); if (resource == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } // check if the resource was modified since last request if (isNotModified(resource, request, response)) { return; } // get binary data and send to client byte[] binaryData = getBinaryData(resource, request); if (binaryData == null || binaryData.length == 0) { response.sendError(HttpServletResponse.SC_NOT_FOUND); } else { String contentType = getContentType(resource, request); sendBinaryData(binaryData, contentType, request, response); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { final String packName = request.getParameter("package"); final ExportedPackage p = packageAdmin.getExportedPackage(packName); if(p == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Package not found: " + packName); } else { response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); response.getWriter().write("PACKAGE FOUND: "); response.getWriter().write(p.toString()); response.getWriter().flush(); } } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { final Command cmd = new Command(request); response.setHeader("Content-Type", " application/json; charset=UTF-8"); try { response.getWriter().append(quicklyEngine.execute(request, response, cmd).toString()); } catch (JSONException e) { response.sendError(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.getWriter().print("{\"status:\": \"error\"}"); } } }
@Override protected final void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { // determine root resource Resource rootResource = getRootResource(request); if (rootResource == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } response.setContentType(ContentType.JSON); try { PageFilter pageFilter = getPageFilter(request); JSONArray jsonContent = getJsonContent(rootResource, pageFilter); response.getWriter().write(jsonContent.toString()); } /*CHECKSTYLE:OFF*/ catch (Exception ex) { /*CHECKSTYLE:ON*/ log.error("Unexpected error, rethrow as servlet exception.", ex); throw new ServletException(ex); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-Type", " application/json; charset=UTF-8"); final JSONObject json = new JSONObject(); try { json.put("user", request.getResourceResolver().getUserID()); json.put("throttle", 200); response.getWriter().write(json.toString()); } catch (JSONException e) { response.sendError(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.getWriter().print("{\"status:\": \"error\"}"); } } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { String path = request.getResource().getPath(); // check path is a valid DAM root folder path for asset service if (!damPathHandler.isAllowedDataVersionPath(path)) { log.debug("Path not allowed to get data version {}", path); response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } // return data version as JSON try { JSONObject jsonResponse = new JSONObject(); jsonResponse.put("dataVersion", damPathHandler.getDataVersion(path)); response.setContentType(ContentType.JSON); response.setCharacterEncoding(CharEncoding.UTF_8); response.getWriter().write(jsonResponse.toString()); CacheHeader.setNonCachingHeaders(response); } catch (JSONException ex) { throw new ServletException("Unable to generate JSON.", ex); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { if (!editorConfig.isEnabled()) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } Resource contextResource = request.getResource(); try { JSONObject result = new JSONObject(); result.putOpt("contextPath", getContextPath(contextResource)); result.put("configNames", getConfigNames(contextResource)); response.setContentType("application/json;charset=" + CharEncoding.UTF_8); response.getWriter().write(result.toString()); } catch (JSONException ex) { throw new ServletException("Unable to generate JSON.", ex); } }
protected void doFilterInternal(SlingHttpServletRequest req, SlingHttpServletResponse res) throws IOException { ThrottlingDecision decision = state.evaluateThrottling(); if (decision.getState().equals(ThrottlingDecision.State.THROTTLE)) { if (this.config.reject_on_throttle()) { String msg = "Request rejected because of throttling: " + decision.message; req.getRequestProgressTracker().log(msg); LOG.info(msg); res.sendError(config.http_status_on_reject(), decision.message); } else { String msg = "Throttling request (" + decision.message + ")"; req.getRequestProgressTracker().log(msg); LOG.info(msg); delay(decision.delay); } } else { // not throttled req.getRequestProgressTracker().log("Request not throttled"); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { final Resource resource = request.getResource(); // Resource must define which namespaces are exposed, // to make sure administrators think about // what's exposed final ValueMap m = resource.adaptTo(ValueMap.class); final String [] namespacePatterns = m.get(NAMESPACES_PROP, String[].class); if(namespacePatterns == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "Missing property " + NAMESPACES_PROP); return; } // All good, get capabilities response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); new JSONCapabilitiesWriter().writeJson(resource.getResourceResolver(), response.getWriter(), sources, new RegexFilter(namespacePatterns)); response.getWriter().flush(); }