Search in sources :

Example 1 with HaltException

use of spark.HaltException in project spark by perwendel.

the class MatcherFilter method doFilter.

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
    HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
    // handle static resources
    boolean consumedByStaticFile = staticFiles.consume(httpRequest, httpResponse);
    if (consumedByStaticFile) {
        return;
    }
    String method = getHttpMethodFrom(httpRequest);
    String httpMethodStr = method.toLowerCase();
    String uri = httpRequest.getRequestURI();
    String acceptType = httpRequest.getHeader(ACCEPT_TYPE_REQUEST_MIME_HEADER);
    Body body = Body.create();
    RequestWrapper requestWrapper = RequestWrapper.create();
    ResponseWrapper responseWrapper = ResponseWrapper.create();
    Response response = RequestResponseFactory.create(httpResponse);
    HttpMethod httpMethod = HttpMethod.get(httpMethodStr);
    RouteContext context = RouteContext.create().withMatcher(routeMatcher).withHttpRequest(httpRequest).withUri(uri).withAcceptType(acceptType).withBody(body).withRequestWrapper(requestWrapper).withResponseWrapper(responseWrapper).withResponse(response).withHttpMethod(httpMethod);
    try {
        try {
            BeforeFilters.execute(context);
            Routes.execute(context);
            AfterFilters.execute(context);
        } catch (HaltException halt) {
            Halt.modify(httpResponse, body, halt);
        } catch (Exception generalException) {
            GeneralError.modify(httpRequest, httpResponse, body, requestWrapper, responseWrapper, generalException);
        }
        // If redirected and content is null set to empty string to not throw NotConsumedException
        if (body.notSet() && responseWrapper.isRedirected()) {
            body.set("");
        }
        if (body.notSet() && hasOtherHandlers) {
            if (servletRequest instanceof HttpRequestWrapper) {
                ((HttpRequestWrapper) servletRequest).notConsumed(true);
                return;
            }
        }
        if (body.notSet() && !externalContainer) {
            LOG.info("The requested route [{}] has not been mapped in Spark for {}: [{}]", uri, ACCEPT_TYPE_REQUEST_MIME_HEADER, acceptType);
            httpResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
            if (CustomErrorPages.existsFor(404)) {
                requestWrapper.setDelegate(RequestResponseFactory.create(httpRequest));
                responseWrapper.setDelegate(RequestResponseFactory.create(httpResponse));
                body.set(CustomErrorPages.getFor(404, requestWrapper, responseWrapper));
            } else {
                body.set(String.format(CustomErrorPages.NOT_FOUND));
            }
        }
    } finally {
        try {
            AfterAfterFilters.execute(context);
        } catch (Exception generalException) {
            GeneralError.modify(httpRequest, httpResponse, body, requestWrapper, responseWrapper, generalException);
        }
    }
    if (body.isSet()) {
        body.serializeTo(httpResponse, serializerChain, httpRequest);
    } else if (chain != null) {
        chain.doFilter(httpRequest, httpResponse);
    }
}
Also used : HaltException(spark.HaltException) HttpServletResponse(javax.servlet.http.HttpServletResponse) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) HaltException(spark.HaltException) HttpServletRequest(javax.servlet.http.HttpServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) ServletResponse(javax.servlet.ServletResponse) Response(spark.Response) HttpRequestWrapper(spark.embeddedserver.jetty.HttpRequestWrapper) HttpRequestWrapper(spark.embeddedserver.jetty.HttpRequestWrapper) HttpMethod(spark.route.HttpMethod)

Example 2 with HaltException

use of spark.HaltException in project searchcode-server by boyter.

the class CodeRouteServiceTest method testGetCodeNoParams.

public void testGetCodeNoParams() {
    CodeRouteService codeRouteService = new CodeRouteService();
    Request request = Mockito.mock(Request.class);
    Response response = Mockito.mock(Response.class);
    try {
        codeRouteService.getCode(request, response);
    } catch (HaltException ex) {
    }
    verify(response, times(1)).redirect("/404/");
}
Also used : Response(spark.Response) HaltException(spark.HaltException) CodeRouteService(com.searchcode.app.service.route.CodeRouteService) Request(spark.Request)

Example 3 with HaltException

use of spark.HaltException in project searchcode-server by boyter.

the class CodeRouteServiceTest method testGetCodeWithParamsNoMatch.

public void testGetCodeWithParamsNoMatch() {
    CodeRouteService codeRouteService = new CodeRouteService();
    Request request = Mockito.mock(Request.class);
    Response response = Mockito.mock(Response.class);
    when(request.params(":codeid")).thenReturn("NOTHING-SHOULD-MATCH-THIS-EVER");
    try {
        codeRouteService.getCode(request, response);
    } catch (HaltException ex) {
    }
    verify(response, times(1)).redirect("/404/");
}
Also used : Response(spark.Response) HaltException(spark.HaltException) CodeRouteService(com.searchcode.app.service.route.CodeRouteService) Request(spark.Request)

Example 4 with HaltException

use of spark.HaltException in project searchcode-server by boyter.

the class CodeRouteServiceTest method testGetProject.

public void testGetProject() {
    CodeRouteService codeRouteService = new CodeRouteService();
    Request request = Mockito.mock(Request.class);
    Response response = Mockito.mock(Response.class);
    try {
        codeRouteService.getProject(request, response);
    } catch (HaltException ex) {
    }
    verify(response, times(1)).redirect("/404/");
}
Also used : Response(spark.Response) HaltException(spark.HaltException) CodeRouteService(com.searchcode.app.service.route.CodeRouteService) Request(spark.Request)

Aggregations

HaltException (spark.HaltException)4 Response (spark.Response)4 CodeRouteService (com.searchcode.app.service.route.CodeRouteService)3 Request (spark.Request)3 IOException (java.io.IOException)1 ServletException (javax.servlet.ServletException)1 ServletResponse (javax.servlet.ServletResponse)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 HttpServletResponse (javax.servlet.http.HttpServletResponse)1 HttpRequestWrapper (spark.embeddedserver.jetty.HttpRequestWrapper)1 HttpMethod (spark.route.HttpMethod)1