@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx))); router.route().handler(routingContext -> { Session session = routingContext.session(); Integer cnt = session.get("hitcount"); cnt = (cnt == null ? 0 : cnt) + 1; session.put("hitcount", cnt); routingContext.response().putHeader("content-type", "text/html") .end("<html><body><h1>Hitcount: " + cnt + "</h1></body></html>"); }); vertx.createHttpServer().requestHandler(router).listen(8080); } }
/** * Something has happened, so handle it. * @param event the event to handle */ public void handle(io.vertx.rxjava.ext.web.RoutingContext event) { delegate.handle(event.getDelegate()); }
/** * Something has happened, so handle it. * @param event the event to handle */ public void handle(io.vertx.rxjava.ext.web.RoutingContext event) { delegate.handle(event.getDelegate()); }
router.route().handler(CookieHandler.create());
router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)));
router.route().handler(CookieHandler.create()); router.route().handler(BodyHandler.create()); router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)));
router.route().handler(CookieHandler.create()); router.route().handler(BodyHandler.create()); router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)));
router.route().handler(CookieHandler.create()); router.route().handler(BodyHandler.create()); router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)));
@Override public void setUp() throws Exception { super.setUp(); router.route().handler(CookieHandler.create()); }
@Override public void init(Router router) { router.routeWithRegex(PATTERN_ANY).handler(CookieHandler.create()); router.routeWithRegex(PATTERN_ANY).handler(createBodyHandler()); router.routeWithRegex(PATTERN_ANY).failureHandler(this::onFailure).handler(this::onRequest); }
@Override public void init(Router router) { router.route().handler(CookieHandler.create()); router.route().handler(createBodyHandler()); router.route().failureHandler(this::failureHandler).handler(this::onRequest); }
@Test public void testGetCookie() throws Exception { router.route().handler(CookieHandler.create()); router.route().handler(CSRFHandler.create("Abracadabra")); router.get().handler(rc -> rc.response().end()); testRequest(HttpMethod.GET, "/", null, resp -> { List<String> cookies = resp.headers().getAll("set-cookie"); assertEquals(1, cookies.size()); assertEquals(CSRFHandler.DEFAULT_COOKIE_NAME, cookies.get(0).substring(0, cookies.get(0).indexOf('='))); }, 200, "OK", null); }
@Test public void testLastAccessed1() throws Exception { router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(store)); AtomicReference<Session> rid = new AtomicReference<>(); long start = System.currentTimeMillis(); router.route().handler(rc -> { rid.set(rc.session()); rc.response().end(); }); testRequest(HttpMethod.GET, "/", 200, "OK"); assertTrue(rid.get().lastAccessed() - start < 500); start = System.currentTimeMillis(); Thread.sleep(1000); testRequest(HttpMethod.GET, "/", 200, "OK"); assertTrue(rid.get().lastAccessed() - start >= 1000); }
@Test public void testLastAccessed2() throws Exception { router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(store)); AtomicReference<Session> rid = new AtomicReference<>(); router.route().handler(rc -> { rid.set(rc.session()); rc.session().put("foo", "bar"); vertx.setTimer(1000, tid -> rc.response().end()); }); testRequest(HttpMethod.GET, "/", 200, "OK"); // accessed() is called after request too assertTrue(rid.get().lastAccessed() - System.currentTimeMillis() < 500); }
@Test public void testIssue172_setnull() throws Exception { router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(store)); AtomicReference<Session> rid = new AtomicReference<>(); router.route().handler(rc -> { rid.set(rc.session()); rc.session().put("foo", null); vertx.setTimer(1000, tid -> rc.response().end()); }); testRequest(HttpMethod.GET, "/", 200, "OK"); }
@Test public void testSendRequiresAuthorityHasnotAuthority() throws Exception { sockJSHandler.bridge(defaultOptions.addInboundPermitted(new PermittedOptions().setAddress(addr).setRequiredAuthority("pick_nose"))); router.clear(); router.route().handler(CookieHandler.create()); SessionStore store = LocalSessionStore.create(vertx); router.route().handler(SessionHandler.create(store)); JsonObject authConfig = new JsonObject().put("properties_path", "classpath:login/loginusers.properties"); AuthProvider authProvider = ShiroAuth.create(vertx, new ShiroAuthOptions().setType(ShiroAuthRealmType.PROPERTIES).setConfig(authConfig)); addLoginHandler(router, authProvider); router.route("/eventbus/*").handler(sockJSHandler); testError(new JsonObject().put("type", "send").put("address", addr).put("body", "foo"), "access_denied"); }
router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(store));
@Test public void testPostWithoutHeader() throws Exception { router.route().handler(CookieHandler.create()); router.route().handler(CSRFHandler.create("Abracadabra")); router.route().handler(rc -> rc.response().end()); testRequest(HttpMethod.POST, "/", null, null, 403, "Forbidden", null); }
@Test public void testSessionCookieSecureFlagAndHttpOnlyFlags() throws Exception { router.route().handler(CookieHandler.create()); router.route().handler(SessionHandler.create(store).setCookieSecureFlag(true).setCookieHttpOnlyFlag(true)); router.route().handler(rc -> rc.response().end()); testRequest(HttpMethod.GET, "/", null, resp -> { String setCookie = resp.headers().get("set-cookie"); assertTrue(setCookie.contains("; Secure")); assertTrue(setCookie.contains("; HTTPOnly")); }, 200, "OK", null); }
@Test public void testPostWithHeader() throws Exception { router.route().handler(StaticHandler.create()); router.route("/xsrf").handler(CookieHandler.create()); router.route("/xsrf").handler(CSRFHandler.create("Abracadabra")); router.route("/xsrf").handler(rc -> rc.response().end()); testRequest(HttpMethod.GET, "/xsrf", null, resp -> { List<String> cookies = resp.headers().getAll("set-cookie"); String cookie = cookies.get(0); rawCookie = cookie; tmpCookie = cookie.substring(cookie.indexOf('=') + 1, cookie.indexOf(';')); }, 200, "OK", null); testRequest(HttpMethod.POST, "/xsrf", req -> { req.putHeader(CSRFHandler.DEFAULT_HEADER_NAME, tmpCookie); req.putHeader("Cookie", rawCookie); }, null, 200, "OK", null); }