From 8efa7d18bb925656bdfce4750f05192517e7bdfe Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 6 Aug 2022 09:38:20 +0200 Subject: [PATCH] Support web socket over SSL --- org.argeo.api.cms/src/org/argeo/api/cms/CmsEvent.java | 7 +++---- .../src/org/argeo/cms/client/SpnegoHttpClient.java | 2 +- .../src/org/argeo/cms/client/WebSocketEventClient.java | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/org.argeo.api.cms/src/org/argeo/api/cms/CmsEvent.java b/org.argeo.api.cms/src/org/argeo/api/cms/CmsEvent.java index 047717275..6ec70feba 100644 --- a/org.argeo.api.cms/src/org/argeo/api/cms/CmsEvent.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/CmsEvent.java @@ -10,12 +10,11 @@ public interface CmsEvent { String name(); default String topic() { - return getTopicBase() + "/" + name(); + return getTopicBase() + "." + name(); } - default String getTopicBase() { - return "argeo/cms"; + default String getTopicBase() { + return "argeo.cms"; } - } diff --git a/org.argeo.cms/src/org/argeo/cms/client/SpnegoHttpClient.java b/org.argeo.cms/src/org/argeo/cms/client/SpnegoHttpClient.java index fcbd7a73d..444f4efb5 100644 --- a/org.argeo.cms/src/org/argeo/cms/client/SpnegoHttpClient.java +++ b/org.argeo.cms/src/org/argeo/cms/client/SpnegoHttpClient.java @@ -66,7 +66,7 @@ public class SpnegoHttpClient { } } - private static HttpClient openHttpClient(Subject subject) { + static HttpClient openHttpClient(Subject subject) { HttpClient client = HttpClient.newBuilder() // .sslContext(ipaSslContext()) // .version(HttpClient.Version.HTTP_1_1) // diff --git a/org.argeo.cms/src/org/argeo/cms/client/WebSocketEventClient.java b/org.argeo.cms/src/org/argeo/cms/client/WebSocketEventClient.java index 7a80c7806..294b485fb 100644 --- a/org.argeo.cms/src/org/argeo/cms/client/WebSocketEventClient.java +++ b/org.argeo.cms/src/org/argeo/cms/client/WebSocketEventClient.java @@ -40,13 +40,13 @@ public class WebSocketEventClient { }; // SPNEGO - URL jaasUrl = SpnegoHttpClient.class.getResource("jaas.cfg"); + URL jaasUrl = SpnegoHttpClient.class.getResource("jaas-client-ipa.cfg"); System.setProperty("java.security.auth.login.config", jaasUrl.toExternalForm()); - LoginContext lc = new LoginContext("SINGLE_USER"); + LoginContext lc = new LoginContext(SpnegoHttpClient.CLIENT_LOGIN_CONTEXT); lc.login(); String token = RemoteAuthUtils.createGssToken(lc.getSubject(), "HTTP", uri.getHost()); - HttpClient client = HttpClient.newHttpClient(); + HttpClient client = SpnegoHttpClient.openHttpClient(lc.getSubject()); CompletableFuture ws = client.newWebSocketBuilder() .header(HttpHeader.AUTHORIZATION.getHeaderName(), HttpHeader.NEGOTIATE + " " + token) .buildAsync(uri, listener); -- 2.30.2