private void connect(final String clientId, String sessionId) throws IOException { connectionLock.lock(); try { final WebSocketMessageRouter router; try { router = routers.getRouterOrFail(clientId); } catch (WebSocketConfigurationException e) { throw new IllegalStateException("Failed to get router due to: " + e, e); } final RoutingWebSocketListener listener = new RoutingWebSocketListener(router); listener.setSessionId(sessionId); final ClientUpgradeRequest request = new ClientUpgradeRequest(); if (!StringUtils.isEmpty(authorizationHeader)) { request.setHeader(HttpHeader.AUTHORIZATION.asString(), authorizationHeader); } final Future<Session> connect = client.connect(listener, webSocketUri, request); getLogger().info("Connecting to : {}", new Object[]{webSocketUri}); final Session session; try { session = connect.get(connectionTimeoutMillis, TimeUnit.MILLISECONDS); } catch (Exception e) { throw new IOException("Failed to connect " + webSocketUri + " due to: " + e, e); } getLogger().info("Connected, session={}", new Object[]{session}); activeSessions.put(clientId, listener.getSessionId()); } finally { connectionLock.unlock(); } }
private Code makeWsRequest(final String username, final String password) throws Exception { final WebSocketClient wsClient = new WebSocketClient(); wsClient.start(); try { final ClientUpgradeRequest request = new ClientUpgradeRequest(); if (!username.isEmpty()) { final String authHeader = "Basic " + buildBasicAuthHeader(username, password); request.setHeader(HttpHeaders.AUTHORIZATION, authHeader); } final WebSocketListener listener = new WebSocketListener(); final URI wsUri = REST_APP.getWsListener().resolve("/ws/query"); wsClient.connect(listener, wsUri, request); assertThat("Response received", listener.latch.await(30, TimeUnit.SECONDS), is(true)); final Throwable error = listener.error.get(); return error == null ? Code.OK : extractStatusCode(error); } finally { wsClient.stop(); } }
URI serverURI = new URI("wss://domain:port/websocket"); ClassLoader classLoader = getClass().getClassLoader(); URL url = classLoader.getResource("resources/domain.jks"); SslContextFactory sslContextFactory = new SslContextFactory(); Resource keyStoreResource = Resource.newResource(url); sslContextFactory.setKeyStoreResource(keyStoreResource); sslContextFactory.setKeyStorePassword("Keystore Password"); sslContextFactory.setKeyManagerPassword("Keystore Password"); WebSocketClient webSocketClient = new WebSocketClient(sslContextFactory); ClientUpgradeRequest request = new ClientUpgradeRequest(); request.setSubProtocols("xsCrossfire"); String basicAuthHeader = HttpBasicAuthHeader.generateBasicAuthHeader("username", "password"); request.setHeader("Authorization", "Basic " + basicAuthHeader); webSocketClient.start();
if (authData.hasDataForHttp()) { for (Map.Entry<String, String> kv : authData.getHttpHeaders()) { produceRequest.setHeader(kv.getKey(), kv.getValue());
private void connect() throws Exception { wsSession = null; client = new WebSocketClient(); client.start(); client.setAsyncWriteTimeout(5000); client.setConnectTimeout(2000); client.setStopTimeout(5000); ClientUpgradeRequest request = new ClientUpgradeRequest(); request.setHeader("Authorization", SSHUtil.getPublicKeyAuthorization(username)); Future<Session> future = client.connect(this, uri, request); logger.info(String.format("Connecting to : %s", uri)); try { wsSession = future.get(); } catch (Exception e) { logger.log(Level.INFO, "Exception while trying to connect", e); try { client.stop(); client.destroy(); } catch (Exception e1) { logger.log(Level.INFO, "Exception while trying to disconnect", e1); } } } @OnWebSocketClose
ClientUpgradeRequest request = new ClientUpgradeRequest(); request.setSubProtocols("xsCrossfire"); request.setHeader("Authorization","Basic TLVWQMZqRr2hasYnZoI=");
for (int i = 0; i < headerManager.size(); i++) { Header header = headerManager.get(i); request.setHeader(header.getName(), header.getValue());
@Override public void connect(final Channel channel, final TransportMessage transportMessage) { try { ClientUpgradeRequest request = new ClientUpgradeRequest(); request.setRequestURI(channel.getUri()); String protocol = "org.granite.gravity." + transportMessage.getContentType().substring("application/x-".length()); request.setSubProtocols(protocol); if (transportMessage.getSessionId() != null) webSocketClient.getCookieStore().add(channel.getUri(), new HttpCookie("JSESSIONID", transportMessage.getSessionId())); request.setCookiesFrom(webSocketClient.getCookieStore()); request.setHeader("connectId", transportMessage.getId()); request.setHeader("GDSClientType", transportMessage.getClientType().toString()); String clientId = transportMessage.getClientId() != null ? transportMessage.getClientId() : channel.getClientId(); if (clientId != null) request.setHeader("GDSClientId", clientId); log.info("Connecting to websocket %s protocol %s sessionId %s clientId %s", channel.getUri(), protocol, transportMessage.getSessionId(), clientId); webSocketClient.connect(new WebSocketHandler(channel), channel.getUri(), request); } catch (Exception e) { log.error(e, "Could not connect to uri %s", channel.getUri()); getStatusHandler().handleException(new TransportException("Could not connect to uri " + channel.getUri(), e)); } }
@Override public void connect(final Channel channel, final TransportMessage transportMessage) { try { ClientUpgradeRequest request = new ClientUpgradeRequest(); request.setRequestURI(channel.getUri()); String protocol = "org.granite.gravity." + transportMessage.getContentType().substring("application/x-".length()); request.setSubProtocols(protocol); if (transportMessage.getSessionId() != null) webSocketClient.getCookieStore().add(channel.getUri(), new HttpCookie("JSESSIONID", transportMessage.getSessionId())); request.setCookiesFrom(webSocketClient.getCookieStore()); request.setHeader("connectId", transportMessage.getId()); request.setHeader("GDSClientType", transportMessage.getClientType().toString()); String clientId = transportMessage.getClientId() != null ? transportMessage.getClientId() : channel.getClientId(); if (clientId != null) request.setHeader("GDSClientId", clientId); log.info("Connecting to websocket %s protocol %s sessionId %s clientId %s", channel.getUri(), protocol, transportMessage.getSessionId(), clientId); webSocketClient.connect(new WebSocketHandler(channel), channel.getUri(), request); } catch (Exception e) { log.error(e, "Could not connect to uri %s", channel.getUri()); getStatusHandler().handleException(new TransportException("Could not connect to uri " + channel.getUri(), e)); } }