Support web socket over SSL
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 6 Aug 2022 07:38:20 +0000 (09:38 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 6 Aug 2022 07:38:20 +0000 (09:38 +0200)
org.argeo.api.cms/src/org/argeo/api/cms/CmsEvent.java
org.argeo.cms/src/org/argeo/cms/client/SpnegoHttpClient.java
org.argeo.cms/src/org/argeo/cms/client/WebSocketEventClient.java

index 04771727550ce38082ab02437925db3962590e17..6ec70feba2ba8c184d8eeb1f37772f671d54dc31 100644 (file)
@@ -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";
        }
 
-
 }
index fcbd7a73da778c5e62a6f8d5561bb658b86c2748..444f4efb54f3c164813edaedcea5e37d8681caa0 100644 (file)
@@ -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) //
index 7a80c780662dff097fb1486532509428c4c92889..294b485fb450668352baac32a63e457ebd30233d 100644 (file)
@@ -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<WebSocket> ws = client.newWebSocketBuilder()
                                .header(HttpHeader.AUTHORIZATION.getHeaderName(), HttpHeader.NEGOTIATE + " " + token)
                                .buildAsync(uri, listener);