@Override public void handle(final Request req, final Response rsp) throws Exception { if (!rsp.header(ALLOW).isSet()) { Set<String> allow = new LinkedHashSet<>(); Set<String> methods = new LinkedHashSet<>(Route.METHODS); String path = req.path(); methods.remove(req.method()); for (String method : methods) { routes.stream() .filter(route -> route.matches(method, path, MediaType.all, MediaType.ALL).isPresent()) .forEach(route -> allow.add(route.method())); } rsp.header(ALLOW, Joiner.on(SEP).join(allow)) .length(0) .status(Status.OK); } }
@Override public void handle(final Request req, final Response rsp) throws Throwable { if (compilationDone.get()) { if (req.param("assets.sync").isSet()) { onChange(StandardWatchEventKinds.ENTRY_MODIFY, basedir); } if (errors.size() > 0) { throw errors.values().iterator().next(); } } else { rsp.type(MediaType.html) .send("<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"UTF-8\">\n" + "<meta http-equiv=\"refresh\" content=\"2\">\n" + "<title>Compiling assets</title>\n" + "</head>\n" + "<body>\n" + "Compiling assets, please wait...\n" + "</body>\n" + "</html>"); } }
private static final GetValue param() { return (req, rsp, chain, param) -> { Mutant mutant = req.param(param.name); if (mutant.isSet() || param.optional) { return mutant.to(param.type); } try { return req.params().to(param.type); } catch (Err ex) { // force parsing return mutant.to(param.type); } }; } }
private void preflight(final Cors cors, final Request req, final Response rsp, final String origin) { /** * Allowed method */ boolean allowMethod = req.header(AC_REQUEST_METHOD).toOptional() .map(cors::allowMethod) .orElse(false); if (!allowMethod) { return; } /** * Allowed headers */ List<String> headers = req.header(AC_REQUEST_HEADERS).toOptional().map(header -> Splitter.on(',').trimResults().omitEmptyStrings().splitToList(header) ).orElse(Collections.emptyList()); if (!cors.allowHeaders(headers)) { return; } /** * Allowed methods */ rsp.header(AC_ALLOW_METHODS, join(cors.allowedMethods())); List<String> allowedHeaders = cors.anyHeader() ? headers : cors.allowedHeaders(); rsp.header(AC_ALLOW_HEADERS, join(allowedHeaders));
@Override public void handle(final Request req, final Response rsp) throws Throwable { if (compilationDone.get()) { if (req.param("assets.sync").isSet()) { onChange(StandardWatchEventKinds.ENTRY_MODIFY, basedir); } if (errors.size() > 0) { throw errors.values().iterator().next(); } } else { rsp.type(MediaType.html) .send("<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"UTF-8\">\n" + "<meta http-equiv=\"refresh\" content=\"2\">\n" + "<title>Compiling assets</title>\n" + "</head>\n" + "<body>\n" + "Compiling assets, please wait...\n" + "</body>\n" + "</html>"); } }
@Override public void handle(final Request req, final Response rsp) throws Exception { if (!rsp.header(ALLOW).isSet()) { Set<String> allow = new LinkedHashSet<>(); Set<String> methods = new LinkedHashSet<>(Route.METHODS); String path = req.path(); methods.remove(req.method()); for (String method : methods) { routes.stream() .filter(route -> route.matches(method, path, MediaType.all, MediaType.ALL).isPresent()) .forEach(route -> allow.add(route.method())); } rsp.header(ALLOW, Joiner.on(SEP).join(allow)) .length(0) .status(Status.OK); } }
private static final GetValue param() { return (req, rsp, chain, param) -> { Mutant mutant = req.param(param.name); if (mutant.isSet() || param.optional) { return mutant.to(param.type); } try { return req.params().to(param.type); } catch (Err ex) { // force parsing return mutant.to(param.type); } }; } }
private void preflight(final Cors cors, final Request req, final Response rsp, final String origin) { /** * Allowed method */ boolean allowMethod = req.header(AC_REQUEST_METHOD).toOptional() .map(cors::allowMethod) .orElse(false); if (!allowMethod) { return; } /** * Allowed headers */ List<String> headers = req.header(AC_REQUEST_HEADERS).toOptional().map(header -> Splitter.on(',').trimResults().omitEmptyStrings().splitToList(header) ).orElse(Collections.emptyList()); if (!cors.allowHeaders(headers)) { return; } /** * Allowed methods */ rsp.header(AC_ALLOW_METHODS, join(cors.allowedMethods())); List<String> allowedHeaders = cors.anyHeader() ? headers : cors.allowedHeaders(); rsp.header(AC_ALLOW_HEADERS, join(allowedHeaders));