@Override public Mutant header(final String name) { return req.header(name); }
@Override public Mutant header(final String name, final String... xss) { return req.header(name, xss); }
/** * @return True if the <code>X-Requested-With</code> header is set to <code>XMLHttpRequest</code>. */ default boolean xhr() { return header("X-Requested-With") .toOptional(String.class) .map("XMLHttpRequest"::equalsIgnoreCase) .orElse(Boolean.FALSE); }
@Override public String getRequestHeader(final String name) { return req.header(name).value(null); }
@Override public String getRequestHeader(String name) { return req.header(name).toOptional().orElse(null); }
@Override public void handle(final Request req, final Response rsp, final Chain chain) throws Throwable { Optional<String> origin = req.header("Origin").toOptional(); Cors cors = this.cors.orElseGet(() -> req.require(Cors.class)); if (cors.enabled() && origin.isPresent()) { cors(cors, req, rsp, origin.get()); } chain.next(req, rsp); }
protected void handshake(final Request req, final Runnable handler) throws Exception { this.injector = req.require(Injector.class); this.renderers = ImmutableList.copyOf(injector.getInstance(Renderer.KEY)); this.produces = req.route().produces(); this.locals = req.attributes(); this.lastEventId = req.header("Last-Event-ID"); this.locale = req.locale(); handshake(handler); }
@Override public void handle(final Request req, final Response rsp, final Route.Chain chain) throws Throwable { /** * Get or generate a token */ Session session = req.session(); String token = session.get(name).toOptional().orElseGet(() -> { String newToken = generator.apply(req); session.set(name, newToken); return newToken; }); req.set(name, token); if (requireToken.test(req)) { String candidate = req.header(name).toOptional() .orElseGet(() -> req.param(name).toOptional().orElse(null)); if (!token.equals(candidate)) { throw new Err(Status.FORBIDDEN, "Invalid Csrf token: " + candidate); } } chain.next(req, rsp); } }
boolean ifnm = req.header("If-None-Match").toOptional() .map(etag::equals) .orElse(false); long lastModified = asset.lastModified(); if (lastModified > 0) { boolean ifm = req.header("If-Modified-Since").toOptional(Long.class) .map(ifModified -> lastModified / 1000 <= ifModified / 1000) .orElse(false);
@Override public Mutant header(final String name) { return req.header(name); }
@Override public Mutant header(final String name, final String... xss) { return req.header(name, xss); }
/** * @return True if the <code>X-Requested-With</code> header is set to <code>XMLHttpRequest</code>. */ default boolean xhr() { return header("X-Requested-With") .toOptional(String.class) .map("XMLHttpRequest"::equalsIgnoreCase) .orElse(Boolean.FALSE); }
@Override public String getRequestHeader(final String name) { return req.header(name).value(null); }
@Override public void handle(final Request req, final Response rsp, final Chain chain) throws Throwable { Optional<String> origin = req.header("Origin").toOptional(); Cors cors = this.cors.orElseGet(() -> req.require(Cors.class)); if (cors.enabled() && origin.isPresent()) { cors(cors, req, rsp, origin.get()); } chain.next(req, rsp); }
protected void handshake(final Request req, final Runnable handler) throws Exception { this.injector = req.require(Injector.class); this.renderers = ImmutableList.copyOf(injector.getInstance(Renderer.KEY)); this.produces = req.route().produces(); this.locals = req.attributes(); this.lastEventId = req.header("Last-Event-ID"); this.locale = req.locale(); handshake(handler); }
@Override public void handle(final Request req, final Response rsp, final Route.Chain chain) throws Throwable { /** * Get or generate a token */ Session session = req.session(); String token = session.get(name).toOptional().orElseGet(() -> { String newToken = generator.apply(req); session.set(name, newToken); return newToken; }); req.set(name, token); if (requireToken.test(req)) { String candidate = req.header(name).toOptional() .orElseGet(() -> req.param(name).toOptional().orElse(null)); if (!token.equals(candidate)) { throw new Err(Status.FORBIDDEN, "Invalid Csrf token: " + candidate); } } chain.next(req, rsp); } }
boolean ifnm = req.header("If-None-Match").toOptional() .map(etag::equals) .orElse(false); long lastModified = asset.lastModified(); if (lastModified > 0) { boolean ifm = req.header("If-Modified-Since").toOptional(Long.class) .map(ifModified -> lastModified / 1000 <= ifModified / 1000) .orElse(false);