String remoteIpWithPort = format("%s:%d", getResourceIpAddress(acceptSession, FORWARDED_FOR), remoteClientPort); if (remoteIpWithPort != null) { connectSession.addWriteHeader(HEADER_X_FORWARDED_FOR, remoteIpWithPort); connectSession.addWriteHeader(HEADER_X_FORWARDED_SERVER, serverIpAddress); connectSession.addWriteHeader(HEADER_X_FORWARDED_PROTO, protocol); connectSession.addWriteHeader(HEADER_X_FORWARDED_HOST, format("%s:%s", host, port)); connectSession.addWriteHeader(HEADER_FORWARDED, format("%s=%s;%s=%s;%s=%s;%s=%s:%s", FORWARDED_FOR, remoteIpWithPort, FORWARDED_BY, serverIpAddress, FORWARDED_PROTO, protocol, FORWARDED_HOST, host, port));
private void processRequestHeaders(HttpAcceptSession acceptSession, HttpConnectSession connectSession) { boolean upgrade = processHopByHopHeaders(acceptSession, connectSession); // Add Connection: upgrade or Connection: close header if (upgrade) { connectSession.setWriteHeader(HEADER_CONNECTION, HEADER_UPGRADE); } else { ResourceAddress address = connectSession.getRemoteAddress(); // If keep-alive is disabled, add Connection: close header if (!address.getOption(HttpResourceAddress.KEEP_ALIVE)) { connectSession.setWriteHeader(HEADER_CONNECTION, "close"); } } // Add Via: 1.1 kaazing + uuid header connectSession.addWriteHeader(HEADER_VIA, viaHeader); // Add forwarded headers setupForwardedHeaders(acceptSession, connectSession); }
httpSession.addWriteHeader(HEADER_X_WEBSOCKET_PROTOCOL, nextProtocol); for (String protocol : supportedProtocols) { if (protocol != null) { httpSession.addWriteHeader(HEADER_X_WEBSOCKET_PROTOCOL, protocol); (WsResourceAddress) connectAddressNext, extensionHelper); for (WebSocketExtension extension : extensions) { httpSession.addWriteHeader(HEADER_X_WEBSOCKET_EXTENSIONS, extension.getExtensionHeader().toString());
httpSession.addWriteHeader(HEADER_SEC_WEBSOCKET_EXTENSIONS, extension.getExtensionHeader().toString());