protected void handleCORS(final SlingHttpServletRequest request, final SlingHttpServletResponse response) { final String origin = request.getHeader(ORIGIN); if (origin != null && origin.length() > 0) { response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN, origin); response.setHeader(ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS, "Authorization"); response.setHeader(ACCESS_CONTROL_ALLOW_METHODS, "GET, POST"); } } }
protected void handleCORS(final SlingHttpServletRequest request, final SlingHttpServletResponse response) { final String origin = request.getHeader(ORIGIN); if (origin != null && origin.length() > 0) { response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN, origin); response.setHeader(ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS, "Authorization"); response.setHeader(ACCESS_CONTROL_ALLOW_METHODS, "GET, POST"); } } }
private void stream(@Nonnull SlingHttpServletResponse response, @Nonnull InputStream inputStream, @Nonnull String contentType, String imageName) throws IOException { response.setContentType(contentType); response.setHeader("Content-Disposition", "inline; filename=" + URLEncoder.encode(imageName, CharEncoding.UTF_8)); try { IOUtils.copy(inputStream, response.getOutputStream()); } finally { IOUtils.closeQuietly(inputStream); } }
@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(); json.addProperty("user", request.getResourceResolver().getUserID()); json.addProperty("throttle", 200); Gson gson = new Gson(); gson.toJson(json, response.getWriter()); } }
@SuppressWarnings("null") private void setContentDisposition(SlingHttpServletRequest request, SlingHttpServletResponse response) { Resource resource = request.getResource(); // get mimetype from nt:file resource String mimeType = resource.getValueMap().get(JCR_CONTENT + "/" + JCR_MIMETYPE, String.class); // if mimetype is not blacklisted, or empty (and this is allowed) send "inline" content disposition header if ((StringUtils.isNotBlank(mimeType) && !mimetypeBlacklist.contains(mimeType.toLowerCase())) || (StringUtils.isBlank(mimeType) && allowEmptyMime)) { response.setHeader(HEADER_CONTENT_DISPOSITION, "inline"); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { Entity entity = new Entity(); entity.setName("entity-name"); try { JAXBContext context = JAXBContext.newInstance(Entity.class); response.setHeader("Content-Type", "application/xml"); context.createMarshaller().marshal(entity, response.getOutputStream()); } catch (JAXBException e) { throw new ServletException(e); } }
/** * Handles the <em>OPTIONS</em> method by setting the HTTP * <code>Allow</code> header on the response depending on the methods * declared in this class. * <p> * Extensions of this class should generally not overwrite this method but * rather the {@link #getAllowedRequestMethods(Map)} method. This method * gathers all declared public and protected methods for the concrete class * (upto but not including this class) and calls the * {@link #getAllowedRequestMethods(Map)} method with the methods gathered. * The returned value is then used as the value of the <code>Allow</code> * header set. * * @param request The HTTP request object. Not used. * @param response The HTTP response object on which the header is set. * @throws ServletException Not thrown by this implementation. * @throws IOException Not thrown by this implementation. */ protected void doOptions(@NotNull SlingHttpServletRequest request, @NotNull SlingHttpServletResponse response) throws ServletException, IOException { Map<String, Method> methods = getAllDeclaredMethods(getClass()); StringBuffer allowBuf = getAllowedRequestMethods(methods); response.setHeader("Allow", allowBuf.toString()); }
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-Type", "application/json"); PrintWriter out = response.getWriter(); StringWriter writer = new StringWriter();
@Override protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("filename"); String content = request.getParameter("content"); if (fileName == null || fileName.length() == 0) { LOGGER.error("Parameter fileName is required"); return; } response.setContentType("application/octet-stream"); // Your content type response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); InputStream input = IOUtils.toInputStream(content); int read = 0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while ((read = input.read(bytes)) != -1) { os.write(bytes, 0, read); } input.close(); os.flush(); os.close(); }
@Override protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("filename"); String content = request.getParameter("content"); if (fileName == null || fileName.length() == 0) { LOGGER.error("Parameter fileName is required"); return; } response.setContentType("application/octet-stream"); // Your content type response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); InputStream input = IOUtils.toInputStream(content); int read = 0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while ((read = input.read(bytes)) != -1) { os.write(bytes, 0, read); } input.close(); os.flush(); os.close(); }
@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); } } }
@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 { 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 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) request; final String resourceType = slingRequest.getResource().getResourceType(); final Configuration config = configurationWhiteboard.getConfiguration(slingRequest, resourceType); if (config != null && config.hasTtlSet()) { SlingHttpServletResponse slingResponse = (SlingHttpServletResponse) response; slingResponse.setHeader(HEADER_CACHE_CONTROL, "max-age=" + config.getTtl()); LOG.debug("set \"{}: max-age={}\" to {}", HEADER_CACHE_CONTROL, config.getTtl(), resourceType); } chain.doFilter(request, response); }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { ManagedProcess report = request.getResource().adaptTo(ManagedProcess.class); if (report != null) { String title = report.getName(); String fileName = JcrUtil.createValidName(title) + ".xlsx"; Workbook workbook = createSpreadsheet(report); response.setContentType("application/vnd.ms-excel"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); try (ServletOutputStream out = response.getOutputStream()) { workbook.write(out); out.flush(); } catch (Exception ex) { LOG.error("Error generating excel export for " + request.getResource().getPath(), ex); throw ex; } } else { LOG.error("Unable to process report stored at " + request.getResource().getPath()); throw new ServletException("Unable to process report stored at " + request.getResource().getPath()); } }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { GenericReport report = request.getResource().adaptTo(GenericReport.class); if (report != null) { String title = report.getName(); String fileName = JcrUtil.createValidName(title) + ".xlsx"; Workbook workbook = createSpreadsheet(report); response.setContentType("application/vnd.ms-excel"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); try (ServletOutputStream out = response.getOutputStream()) { workbook.write(out); out.flush(); } catch (Exception ex) { LOG.error("Error generating excel export for "+request.getResource().getPath(), ex); throw ex; } } else { LOG.error("Unable to process report stored at "+request.getResource().getPath()); throw new ServletException("Unable to process report stored at "+request.getResource().getPath()); } }
private void prepareCachedResponse(SlingHttpServletResponse response, CacheContent cacheContent) { response.setStatus(cacheContent.getStatus()); // Spool header info into the servlet response. for (String headerName : cacheContent.getHeaders().keySet()) { for (String headerValue : cacheContent.getHeaders().get(headerName)) { response.setHeader(headerName, headerValue); } } // Spool other attributes to the servlet response. response.setContentType(cacheContent.getContentType()); response.setCharacterEncoding(cacheContent.getCharEncoding()); }
@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(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws IOException { Map<String, String> data = null; if (request.getRequestPathInfo().getSelectors().length > 0) { final String label = request.getRequestPathInfo().getSelectors()[0]; if (PROVIDER_LABEL.equals(label)) { data = this.getInfo(request); } } if (data == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unknown Info Request"); } else { response.setHeader(CACHE_CONTROL_HEADER, CACHE_CONTROL_HEADER_VALUE); final String extension = request.getRequestPathInfo().getExtension(); if ("json".equals(extension)) { renderJson(response, data); } else if ("txt".equals(extension)) { renderPlainText(response, data); } else { // default to html renderHtml(response, data); } } }