Java Code Examples for javax.servlet.http.HttpServletResponse#resetBuffer()

The following examples show how to use javax.servlet.http.HttpServletResponse#resetBuffer() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: Tomcat8-Source-Read   File: CorsFilter.java    License: MIT License 6 votes vote down vote up
/**
 * Handles a CORS request that violates specification.
 *
 * @param request The {@link HttpServletRequest} object.
 * @param response The {@link HttpServletResponse} object.
 * @param filterChain The {@link FilterChain} object.
 */
private void handleInvalidCORS(final HttpServletRequest request,
        final HttpServletResponse response, final FilterChain filterChain) {
    String origin = request.getHeader(CorsFilter.REQUEST_HEADER_ORIGIN);
    String method = request.getMethod();
    String accessControlRequestHeaders = request.getHeader(
            REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);

    response.setContentType("text/plain");
    response.setStatus(HttpServletResponse.SC_FORBIDDEN);
    response.resetBuffer();

    if (log.isDebugEnabled()) {
        // Debug so no need for i18n
        StringBuilder message = new StringBuilder("Invalid CORS request; Origin=");
        message.append(origin);
        message.append(";Method=");
        message.append(method);
        if (accessControlRequestHeaders != null) {
            message.append(";Access-Control-Request-Headers=");
            message.append(accessControlRequestHeaders);
        }
        log.debug(message.toString());
    }
}
 
Example 2
Source Project: Tomcat8-Source-Read   File: TestInputBuffer.java    License: MIT License 6 votes vote down vote up
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    req.setCharacterEncoding("UTF-8");
    Reader r = req.getReader();

    resp.setCharacterEncoding("UTF-8");
    resp.setContentType("text/plain");
    Writer w = resp.getWriter();

    try {
        // Copy one character at a time
        int c = r.read();
        while (c != -1) {
            w.write(c);
            c = r.read();
        }
        w.close();
    } catch (MalformedInputException mie) {
        resp.resetBuffer();
        w.write("FAILED");
    }
}
 
Example 3
Source Project: para   File: CORSFilter.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Handles a CORS request that violates specification.
 *
 * @param request The {@link HttpServletRequest} object.
 * @param response The {@link HttpServletResponse} object.
 * @param filterChain The {@link FilterChain} object.
 */
public void handleInvalidCORS(final HttpServletRequest request,
		final HttpServletResponse response, final FilterChain filterChain) {
	String origin = request.getHeader(CORSFilter.REQUEST_HEADER_ORIGIN);
	String method = request.getMethod();
	String accessControlRequestHeaders
			= request.getHeader(REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);

	String message
			= "Invalid CORS request; Origin=" + origin + ";Method=" + method;
	if (accessControlRequestHeaders != null) {
		message
				= message + ";Access-Control-Request-Headers="
				+ accessControlRequestHeaders;
	}
	response.setContentType("text/plain");
	response.setStatus(HttpServletResponse.SC_FORBIDDEN);
	response.resetBuffer();

	log(message);
}
 
Example 4
Source Project: Tomcat7.0.67   File: CorsFilter.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Handles a CORS request that violates specification.
 *
 * @param request
 *            The {@link HttpServletRequest} object.
 * @param response
 *            The {@link HttpServletResponse} object.
 * @param filterChain
 *            The {@link FilterChain} object.
 */
private void handleInvalidCORS(final HttpServletRequest request,
        final HttpServletResponse response, final FilterChain filterChain) {
    String origin = request.getHeader(CorsFilter.REQUEST_HEADER_ORIGIN);
    String method = request.getMethod();
    String accessControlRequestHeaders = request.getHeader(
            REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS);

    response.setContentType("text/plain");
    response.setStatus(HttpServletResponse.SC_FORBIDDEN);
    response.resetBuffer();

    if (log.isDebugEnabled()) {
        // Debug so no need for i18n
        StringBuilder message =
                new StringBuilder("Invalid CORS request; Origin=");
        message.append(origin);
        message.append(";Method=");
        message.append(method);
        if (accessControlRequestHeaders != null) {
            message.append(";Access-Control-Request-Headers=");
            message.append(accessControlRequestHeaders);
        }
        log.debug(message.toString());
    }
}
 
Example 5
Source Project: Tomcat7.0.67   File: TestInputBuffer.java    License: Apache License 2.0 6 votes vote down vote up
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    req.setCharacterEncoding("UTF-8");
    Reader r = req.getReader();

    resp.setCharacterEncoding("UTF-8");
    resp.setContentType("text/plain");
    Writer w = resp.getWriter();

    try {
        // Copy one character at a time
        int c = r.read();
        while (c != -1) {
            w.write(c);
            c = r.read();
        }
        w.close();
    } catch (MalformedInputException mie) {
        resp.resetBuffer();
        w.write("FAILED");
    }
}
 
Example 6
Source Project: tomcatsrc   File: TestInputBuffer.java    License: Apache License 2.0 6 votes vote down vote up
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    req.setCharacterEncoding("UTF-8");
    Reader r = req.getReader();

    resp.setCharacterEncoding("UTF-8");
    resp.setContentType("text/plain");
    Writer w = resp.getWriter();

    try {
        // Copy one character at a time
        int c = r.read();
        while (c != -1) {
            w.write(c);
            c = r.read();
        }
        w.close();
    } catch (MalformedInputException mie) {
        resp.resetBuffer();
        w.write("FAILED");
    }
}
 
Example 7
Source Project: Tomcat8-Source-Read   File: TestOutputBuffer.java    License: MIT License 5 votes vote down vote up
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    Writer w = resp.getWriter();
    w.write("OK");
    resp.resetBuffer();
    w.write("OK");
}
 
Example 8
private void handleException(HttpServletResponse res) throws IOException {
	res.resetBuffer();
	res.setHeader("Access-Control-Allow-Origin", "*");
	res.setHeader("Access-Control-Allow-Credentials", "true");
	res.setContentType("application/json");
	res.setCharacterEncoding("UTF-8");
	res.getWriter().write("{\"code\":100009 ,\"message\" :\"解析token失败\"}");
	res.flushBuffer();
}
 
Example 9
Source Project: Tomcat7.0.67   File: TestOutputBuffer.java    License: Apache License 2.0 5 votes vote down vote up
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    Writer w = resp.getWriter();
    w.write("OK");
    resp.resetBuffer();
    w.write("OK");
}
 
Example 10
/** Send the given parameters as a form-encoded response body. */
   @SuppressWarnings("rawtypes")
public static void sendForm(HttpServletResponse response,
           Iterable<? extends Map.Entry> parameters) throws IOException {
       response.resetBuffer();
       response.setContentType(OAuth.FORM_ENCODED + ";charset="
               + OAuth.ENCODING);
       OAuth.formEncode(parameters, response.getOutputStream());
   }
 
Example 11
Source Project: lams   File: OAuthServlet.java    License: GNU General Public License v2.0 5 votes vote down vote up
/** Send the given parameters as a form-encoded response body. */
public static void sendForm(HttpServletResponse response,
        Iterable<? extends Map.Entry> parameters) throws IOException {
    response.resetBuffer();
    response.setContentType(OAuth.FORM_ENCODED + ";charset="
            + OAuth.ENCODING);
    OAuth.formEncode(parameters, response.getOutputStream());
}
 
Example 12
Source Project: odo   File: PluginHelper.java    License: Apache License 2.0 5 votes vote down vote up
public static void writeResponseContent(HttpServletResponse response, String content) throws IOException {
    // check to see if this is chunked
    boolean chunked = false;
    if (response.containsHeader(PluginHelper.STRING_TRANSFER_ENCODING)
            && response.getHeader(PluginHelper.STRING_TRANSFER_ENCODING).compareTo("chunked") == 0) {
        response.setHeader(PluginHelper.STRING_CONNECTION, PluginHelper.STRING_CHUNKED);
        chunked = true;
    }

    // check to see if this content is supposed to be compressed
    // if so recompress it
    boolean isEncoded = false;
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    if (response.getHeader("content-encoding") != null &&
            response.getHeader("content-encoding").equals("gzip")) {
        // GZIP the data
        isEncoded = true;
        GZIPOutputStream gzip = new GZIPOutputStream(out);
        gzip.write(content.getBytes());
        gzip.close();
        out.close();
    } else if (response.getHeader("content-encoding") != null &&
            response.getHeader("content-encoding").equals("deflate")) {
        // Deflate the data
        isEncoded = true;
        Deflater compressor = new Deflater();
        compressor.setInput(content.getBytes());
        compressor.finish();

        byte[] buffer = new byte[1024];
        while (!compressor.finished()) {
            int count = compressor.deflate(buffer);
            out.write(buffer, 0, count);
        }
        out.close();
        compressor.end();
    }


    // don't do this if we got a HTTP 304 since there is no data to send back
    if (response.getStatus() != HttpServletResponse.SC_NOT_MODIFIED) {
        if (!chunked) {
            // change the content length header to the new length
            if (content != null && !isEncoded) {
                response.setContentLength(content.getBytes().length);
            } else if (isEncoded) {
                response.setContentLength(out.toByteArray().length);
            }
        }

        OutputStream outputStreamClientResponse = response.getOutputStream();
        response.resetBuffer();

        if (content != null && !isEncoded) {
            outputStreamClientResponse.write(content.getBytes());
        } else if (isEncoded) {
            outputStreamClientResponse.write(out.toByteArray());
        }
    }
}
 
Example 13
Source Project: tomcatsrc   File: TestOutputBuffer.java    License: Apache License 2.0 5 votes vote down vote up
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    Writer w = resp.getWriter();
    w.write("OK");
    resp.resetBuffer();
    w.write("OK");
}
 
Example 14
private void loadErrorPage(final HttpServletRequest request, final HttpServletResponse response) {
    final RequestDispatcher requestDispatcher = request.getRequestDispatcher("/no-conversation-state.jsp");
    try {
        requestDispatcher.forward(request, response);
    } catch (final Exception e) {
        logger.error("Error rendering the empty conversation state (shib-cas-authn3) error view.");
        response.resetBuffer();
        response.setStatus(404);
    }
}
 
Example 15
private void loadErrorPage(final HttpServletRequest request, final HttpServletResponse response) {
    final RequestDispatcher requestDispatcher = request.getRequestDispatcher("/no-conversation-state.jsp");
    try {
        requestDispatcher.forward(request, response);
    } catch (final Exception e) {
        logger.error("Error rendering the empty conversation state (shib-cas-authn3) error view.");
        response.resetBuffer();
        response.setStatus(404);
    }
}
 
Example 16
public void handleRequest(Site site, HttpServletRequest req, HttpServletResponse res, String pageSlug) throws IOException,
        ServletException {

    if (site.getCanViewGroup().isMember(Authenticate.getUser()) || PermissionEvaluation.canAccess(Authenticate.getUser(),site)) {
        if (site.getPublished()) {
            try {
                String baseUrl = "/" + site.getBaseUrl();
                if (pageSlug.startsWith(baseUrl)) {
                    pageSlug = pageSlug.substring(baseUrl.length());
                }
                if (pageSlug.endsWith("/") && !req.getRequestURI().equals(req.getContextPath() + "/")) {
                    handleLeadingSlash(req, res, site);
                } else if (pageSlug.startsWith("/static/")) {
                    handleStaticResource(req, res, site, pageSlug);
                } else if (pageSlug.startsWith("/rss")) {
                    handleRSS(req, res, site, pageSlug);
                } else {
                    renderer.renderCMSPage(req, res, site, pageSlug);
                }
            } catch (Exception e) {
                logger.error("Exception while rendering CMS page " + req.getRequestURI(), e);
                if (res.isCommitted()) {
                    return;
                }
                res.reset();
                res.resetBuffer();
                renderer.errorPage(req, res, site, 500);
            }
        } else {
            if (Authenticate.isLogged()) {
                renderer.errorPage(req, res, site, 403);
            } else {
                renderer.errorPage(req, res, site, 401);
            }
            return;
        }
    } else {
        if (Authenticate.isLogged()) {
            renderer.errorPage(req, res, site, 403);
        } else {
            renderer.errorPage(req, res, site, 401);
        }
        return;
    }
}
 
Example 17
private void syncForward(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    try (DefaultWebApplicationRequest forwardedRequest = new DefaultWebApplicationRequest()) {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;

        response.resetBuffer();

        forwardedRequest.setWebApplication(servletEnvironment.getWebApplication());
        forwardedRequest.setContextPath(request.getContextPath());
        forwardedRequest.setDispatcherType(FORWARD);
        forwardedRequest.setAsyncSupported(request.isAsyncSupported());

        if (path != null) {
            setForwardAttributes(request, forwardedRequest,
                    FORWARD_CONTEXT_PATH,
                    FORWARD_PATH_INFO,
                    FORWARD_QUERY_STRING,
                    FORWARD_REQUEST_URI,
                    FORWARD_SERVLET_PATH);

            forwardedRequest.setServletPath(getServletPath(path));
            forwardedRequest.setQueryString(getQueryString(path));

        } else {
            forwardedRequest.setServletPath("/" + servletEnvironment.getServletName());
        }

        CurrentRequestHolder currentRequestHolder = updateCurrentRequest(request, forwardedRequest);

        try {
            servletEnvironment.getWebApplication().linkRequestAndResponse(forwardedRequest, servletResponse);
            servletEnvironment.getServlet().service(forwardedRequest, servletResponse);
            servletEnvironment.getWebApplication().unlinkRequestAndResponse(forwardedRequest, servletResponse);
        } finally {
            restoreCurrentRequest(currentRequestHolder, request);
        }

        response.flushBuffer();
    }
}
 
Example 18
Source Project: phoebus   File: ScanServlet.java    License: Eclipse Public License 1.0 4 votes vote down vote up
/** POST scan/{name}: Submit a new, named, scan
 *  Returns ID of new scan
 */
@Override
protected void doPost(final HttpServletRequest request,
        final HttpServletResponse response)
        throws ServletException, IOException
{
    // Require XML: "text/xml", "text/xml; charset=UTF-8", ...
    final String format = request.getContentType();
    logger.log(Level.FINE, () -> "POST scan " + format);
    if (! format.contains("/xml"))
    {
        logger.log(Level.WARNING, "POST /scan got format '" + format + "'");
        response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Expecting XML content with scan, got format '" + format + "'");
        return;
    }

    // Determine name of scan
    String scan_name = request.getPathInfo();
    if (scan_name == null)
        scan_name = "Scan from " + request.getRemoteHost();
    else
    {
        if (! scan_name.startsWith("/"))
            throw new Error("Path does not start with '/'");
        scan_name = scan_name.substring(1);
    }

    // Queue unless "?queue=false"
    final String queue_parm = request.getParameter("queue");
    final boolean queue = ! "false".equalsIgnoreCase(queue_parm);

    // Execute pre/post commands unless "?pre_post=false"
    final String pre_post_parm = request.getParameter("pre_post");
    final boolean pre_post = ! "false".equalsIgnoreCase(pre_post_parm);

    // Read scan commands
    final String scan_commands = IOUtils.toString(request.getInputStream());

    // Return <id> or <error>
    response.setContentType("text/xml");
    final PrintWriter out = response.getWriter();

    // Submit scan
    try
    {
        if (logger.isLoggable(Level.FINE))
            logger.log(Level.FINE, "Scan '" + scan_name + "':\n" + scan_commands);

        final long scan_id = scan_server.submitScan(scan_name, scan_commands, queue, pre_post);

        // Return scan ID
        out.print("<id>");
        out.print(scan_id);
        out.println("</id>");
    }
    catch (Exception ex)
    {
        logger.log(Level.WARNING, "POST /scan error", ex);
        response.resetBuffer();
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        out.println("<error>");
        out.println("<message>" + scan_name + " failed to submit" + "</message>");
        out.println("<trace>");
        final StringWriter buf = new StringWriter();
        ex.printStackTrace(new PrintWriter(buf));
        out.println(buf.toString().replace("<", "&lt;"));
        out.println("</trace>");
        out.println("</error>");
        response.flushBuffer();
    }
}
 
Example 19
@Test
public final void testDispatchRequestToManagedPipeline() throws ServletException, IOException {
    DaggerServletContextListener contextListener = new DaggerServletContextListener() {
        @Override
        protected Class<?>[] getBaseModules() {
            return new Class<?>[]{TestModule.class};
        }

        @Override
        protected Class<?>[] getRequestScopedModules() {
            return new Class<?>[]{ServletRequestModule.class};
        }

        @Override
        protected void configureServlets() {
            filter("/*").through(TestFilter.class);
            filter("*.html").through(TestFilter.class);
            filter("/*").through(TestFilter.class);

            // These filters should never fire
            filter("/index/*").through(TestFilter.class);
            filter("*.jsp").through(TestFilter.class);

            // Bind a servlet
            serve("*.html").with(TestServlet.class);
        }
    };

    ServletContext servletContext = createMock("blah", ServletContext.class);
    contextListener.contextInitialized(new ServletContextEvent(servletContext));
    final ObjectGraph objectGraph = contextListener.getObjectGraph();

    final FilterPipeline pipeline = objectGraph.get(FilterPipeline.class);
    pipeline.initPipeline(null);

    // create ourselves a mock request with test URI
    HttpServletRequest requestMock = control.createMock(HttpServletRequest.class);

    expect(requestMock.getRequestURI())
            .andReturn("/index.html")
            .anyTimes();
    expect(requestMock.getContextPath())
            .andReturn("")
            .anyTimes();

    requestMock.setAttribute(REQUEST_DISPATCHER_REQUEST, true);
    requestMock.removeAttribute(REQUEST_DISPATCHER_REQUEST);

    HttpServletResponse responseMock = control.createMock(HttpServletResponse.class);
    expect(responseMock.isCommitted())
            .andReturn(false)
            .anyTimes();
    responseMock.resetBuffer();
    expectLastCall().anyTimes();

    FilterChain filterChain = control.createMock(FilterChain.class);

    //dispatch request
    control.replay();
    pipeline.dispatch(requestMock, responseMock, filterChain);
    pipeline.destroyPipeline();
    control.verify();

    TestServlet servlet = objectGraph.get(TestServlet.class);
    assertEquals(2, servlet.processedUris.size());
    assertTrue(servlet.processedUris.contains("/index.html"));
    assertTrue(servlet.processedUris.contains(TestServlet.FORWARD_TO));

    assertTrue(inits == 1 && doFilters == 3 && destroys == 1, "lifecycle states did not"
            + " fire correct number of times-- inits: " + inits + "; dos: " + doFilters
            + "; destroys: " + destroys);
}
 
Example 20
@Test
public final void testDispatchRequestToManagedPipelineWithInstance() throws ServletException, IOException {
    DaggerServletContextListener contextListener = new DaggerServletContextListener() {
        @Override
        protected Class<?>[] getBaseModules() {
            return new Class<?>[]{TestModule.class};
        }

        @Override
        protected Class<?>[] getRequestScopedModules() {
            return new Class<?>[]{ServletRequestModule.class};
        }

        @Override
        protected void configureServlets() {
            filter("/*").through(TestFilter.class);
            filter("*.html").through(TestFilter.class);
            filter("/*").through(new TestFilter());

            // These filters should never fire
            filter("/index/*").through(TestFilter.class);
            filter("*.jsp").through(new TestFilter());

            // Bind a servlet
            serve("*.html").with(TestServlet.class);
        }
    };

    ServletContext servletContext = createMock("blah", ServletContext.class);
    contextListener.contextInitialized(new ServletContextEvent(servletContext));
    final ObjectGraph objectGraph = contextListener.getObjectGraph();

    final FilterPipeline pipeline = objectGraph.get(FilterPipeline.class);
    pipeline.initPipeline(null);

    // create ourselves a mock request with test URI
    HttpServletRequest requestMock = control.createMock(HttpServletRequest.class);

    expect(requestMock.getRequestURI())
            .andReturn("/index.html")
            .anyTimes();
    expect(requestMock.getContextPath())
            .andReturn("")
            .anyTimes();

    requestMock.setAttribute(REQUEST_DISPATCHER_REQUEST, true);
    requestMock.removeAttribute(REQUEST_DISPATCHER_REQUEST);

    HttpServletResponse responseMock = control.createMock(HttpServletResponse.class);
    expect(responseMock.isCommitted())
            .andReturn(false)
            .anyTimes();
    responseMock.resetBuffer();
    expectLastCall().anyTimes();

    FilterChain filterChain = control.createMock(FilterChain.class);

    //dispatch request
    control.replay();
    pipeline.dispatch(requestMock, responseMock, filterChain);
    pipeline.destroyPipeline();
    control.verify();

    TestServlet servlet = objectGraph.get(TestServlet.class);
    assertEquals(2, servlet.processedUris.size());
    assertTrue(servlet.processedUris.contains("/index.html"));
    assertTrue(servlet.processedUris.contains(TestServlet.FORWARD_TO));

    // 1 init/destory for the class binding and 2 inits/destroys for the 2 instance bindings
    assertTrue(inits == 3 && doFilters == 3 && destroys == 3, "lifecycle states did not"
            + " fire correct number of times-- inits: " + inits + "; dos: " + doFilters
            + "; destroys: " + destroys);
}