/** * Return the headers corresponding to the last request for this socket or the websocket handshake * Any cookie headers will be removed for security reasons * @return */ public io.vertx.rxjava.core.MultiMap headers() { io.vertx.rxjava.core.MultiMap ret = io.vertx.rxjava.core.MultiMap.newInstance(delegate.headers()); return ret; }
/** * Return the headers corresponding to the last request for this socket or the websocket handshake * Any cookie headers will be removed for security reasons * @return */ public io.vertx.rxjava.core.MultiMap headers() { io.vertx.rxjava.core.MultiMap ret = io.vertx.rxjava.core.MultiMap.newInstance(delegate.headers()); return ret; }
@Test public void testCookiesRemoved() throws Exception { router.route("/cookiesremoved/*").handler(SockJSHandler.create(vertx) .socketHandler(sock -> { MultiMap headers = sock.headers(); String cookieHeader = headers.get("cookie"); assertNotNull(cookieHeader); assertEquals("JSESSIONID=wibble", cookieHeader); testComplete(); })); MultiMap headers = new CaseInsensitiveHeaders(); headers.add("cookie", "JSESSIONID=wibble"); headers.add("cookie", "flibble=floob"); client.websocket("/cookiesremoved/websocket", headers, ws -> { String frame = "foo"; ws.writeFrame(io.vertx.core.http.WebSocketFrame.textFrame(frame, true)); }); await(); }
private SockJSHandler configureSockJsHandler(VertxContext vertxContext, BridgeOptions bridgeOptions, JsonObject config) { SockJSHandler sockJSHandler = SockJSHandler.create(vertxContext.vertx()); sockJSHandler.bridge(bridgeOptions, event -> event.complete(true)); JsonArray jsonArray=config.getJsonArray(ALLOWED_ORIGINS); sockJSHandler.socketHandler(event -> jsonArray.forEach(o -> event.headers().set(ACCESS_CONTROL_ALLOW_ORIGIN, (String)o))); return sockJSHandler; }
@Override public SockJSHandler configure(VertxContext vertxContext, ServerConfiguration<JsonObject, JsonObject[]> config) { BridgeOptions bridgeOptions=new BridgeOptions(); bridgeOptions.addOutboundPermitted(new PermittedOptions().setAddress(VertxBusContext.DEFAULT_SOCKJS_ADDRESS)); SockJSHandler sockJSHandler = SockJSHandler.create(vertxContext.vertx()); sockJSHandler.bridge(bridgeOptions, event -> event.complete(true)); sockJSHandler.socketHandler(event -> event.headers().set(ACCESS_CONTROL_ALLOW_ORIGIN, ALLOW_ALL)); return sockJSHandler; } }
@Test public void testCookiesRemoved() throws Exception { router.route("/cookiesremoved/*").handler(SockJSHandler.create(vertx) .socketHandler(sock -> { MultiMap headers = sock.headers(); String cookieHeader = headers.get("cookie"); assertNotNull(cookieHeader); assertEquals("JSESSIONID=wibble", cookieHeader); testComplete(); })); MultiMap headers = new CaseInsensitiveHeaders(); headers.add("cookie", "JSESSIONID=wibble"); headers.add("cookie", "flibble=floob"); client.websocket("/cookiesremoved/websocket", headers, ws -> { String frame = "foo"; ws.writeFrame(io.vertx.core.http.WebSocketFrame.textFrame(frame, true)); }); await(); }