- WebSocket.Listener listener = new WebSocket.Listener() {
-
- public CompletionStage<?> onText(WebSocket webSocket, CharSequence message, boolean last) {
- System.out.println(message);
- CompletionStage<String> res = CompletableFuture.completedStage(message.toString());
- return res;
- }
-
- @Override
- public CompletionStage<?> onPong(WebSocket webSocket, ByteBuffer message) {
- // System.out.println("Pong received.");
- return null;
- }
-
- };
-
- // SPNEGO
- URL jaasUrl = SpnegoHttpClient.class.getResource("jaas-client-ipa.cfg");
- System.setProperty("java.security.auth.login.config", jaasUrl.toExternalForm());
- LoginContext lc = new LoginContext(SpnegoHttpClient.CLIENT_LOGIN_CONTEXT);
- lc.login();
- String token = RemoteAuthUtils.createGssToken(lc.getSubject(), "HTTP", uri.getHost());
-
- HttpClient client = SpnegoHttpClient.openHttpClient(lc.getSubject());
- CompletableFuture<WebSocket> ws = client.newWebSocketBuilder()
- .header(HttpHeader.AUTHORIZATION.getHeaderName(), HttpHeader.NEGOTIATE + " " + token)
- .buildAsync(uri, listener);