@Override public final void handle(RouteContext routeContext) { String resourcePath = getResourcePath(routeContext); log.trace("Request resource '{}'", resourcePath); handle(routeContext, resourcePath); routeContext.next(); }
@Override public final void handle(RouteContext routeContext) { String resourcePath = getResourcePath(routeContext); log.trace("Request resource '{}'", resourcePath); if (versioned) { resourcePath = removeVersion(resourcePath); } handleResource(resourcePath, routeContext); routeContext.next(); }
@Override @SuppressWarnings("unchecked") public void handle(RouteContext routeContext) { Objects.requireNonNull(securityLogic); Objects.requireNonNull(config); PippoWebContext webContext = new PippoWebContext(routeContext, config.getSessionStore()); try { securityLogic.perform(webContext, config, (ctx, parameters) -> { throw new SecurityGrantedAccessException(); }, config.getHttpActionAdapter(), clients, authorizers, matchers, multiProfile); // stop the processing if no success granted access exception has been raised log.debug("Halt the request processing"); } catch (SecurityGrantedAccessException e) { // ignore this exception, it means the access is granted: continue log.debug("Received SecurityGrantedAccessException -> continue"); routeContext.next(); } }
@Override public void handle(RouteContext routeContext) { // get request path Request request = routeContext.getRequest(); String path = request.getPath(); // add or remove trailing slash if (path.length() > 1) { if (addSlash) { path = StringUtils.addEnd(path, "/"); } else { path = StringUtils.removeEnd(path, "/"); } } if (!path.equals(request.getPath())) { // redirect routeContext.redirect(path); } else { // continue with the next handler routeContext.next(); } }
protected void processRouteInterceptors(RouteContext routeContext) { if (interceptors.isEmpty()) { return; } List<RouteMatch> chain = new ArrayList<>(); for (RouteHandler interceptor : interceptors) { // create a route for interceptor Route route = new Route(routeContext.getRequestMethod(), routeContext.getRequestUri(), interceptor); route.setName(StringUtils.format("{}<{}>", Interceptor.class.getSimpleName(), route.getRouteHandler().getClass().getSimpleName())); route.bindAll(routeContext.getRoute().getAttributes()); // add route in chain RouteMatch match = new RouteMatch(route, null); chain.add(match); } // TODO DefaultRouteContext is hardcoded RouteContext context = new DefaultRouteContext(routeContext.getApplication(), routeContext.getRequest(), routeContext.getResponse(), chain); context.next(); }
try { if (!canConsume(routeContext)) { routeContext.next(); if (routeContext.getResponse().isCommitted()) { log.debug("Response committed by interceptor"); routeContext.next(); routeContext.getResponse().getStatus()); routeContext.getResponse().commit(); routeContext.next(); routeContext.next(); } catch (InvocationTargetException e) {
routeContext.next();
@Override public void handle(RouteContext routeContext) { String language = enableQueryParameter ? routeContext.getParameter(PippoConstants.REQUEST_PARAMETER_LANG).toString() : null; if (StringUtils.isNullOrEmpty(language)) { language = languages.getLanguageOrDefault(routeContext); } Locale locale = languages.getLocaleOrDefault(language); routeContext.setLocal(PippoConstants.REQUEST_PARAMETER_LANG, language); routeContext.setLocal(PippoConstants.REQUEST_PARAMETER_LOCALE, locale); if (setCookie) { if (routeContext.getResponse().isCommitted()) { log.debug("LANG cookie NOT set, Response already committed!"); } else { languages.setLanguageCookie(language, routeContext); } } routeContext.next(); }
context.next();
@Override public void handle(RouteContext context) { final Response response = context.getResponse(); response.header(HttpConstants.Header.ACCESS_CONTROL_ALLOW_ORIGIN, allowOrigin); if (exposeHeaders != null) { response.header(HttpConstants.Header.ACCESS_CONTROL_EXPOSE_HEADERS, exposeHeaders); } if (maxAge != -1) { response.header(HttpConstants.Header.ACCESS_CONTROL_MAX_AGE, "" + maxAge); } // According to the documentation only if true is what needs to be set // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials#Directives if (allowCredentials) { response.header(HttpConstants.Header.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); } if (allowMethods != null) { response.header(HttpConstants.Header.ACCESS_CONTROL_ALLOW_METHODS, allowMethods); } if (allowHeaders != null) { response.header(HttpConstants.Header.ACCESS_CONTROL_ALLOW_HEADERS, allowHeaders); } if (context.getRequestMethod().equals("OPTIONS")) { response.accepted(); return; } context.next(); }
protected void processRouteInterceptors(RouteContext routeContext) { if (interceptors.isEmpty()) { return; } List<RouteMatch> chain = new ArrayList<>(); for (RouteHandler interceptor : interceptors) { // create a route for interceptor Route route = new Route(routeContext.getRequestMethod(), routeContext.getRequestUri(), interceptor); route.setName(StringUtils.format("{}<{}>", Interceptor.class.getSimpleName(), route.getRouteHandler().getClass().getSimpleName())); route.bindAll(routeContext.getRoute().getAttributes()); // add route in chain RouteMatch match = new RouteMatch(route, null); chain.add(match); } // TODO DefaultRouteContext is hardcoded RouteContext context = new DefaultRouteContext(routeContext.getApplication(), routeContext.getRequest(), routeContext.getResponse(), chain); context.next(); }
try { if (!canConsume(routeContext)) { routeContext.next(); if (routeContext.getResponse().isCommitted()) { log.debug("Response committed by interceptor"); routeContext.next(); routeContext.getResponse().getStatus()); routeContext.getResponse().commit(); routeContext.next(); routeContext.next(); } catch (InvocationTargetException e) {