+++ /dev/null
-package org.argeo.cms.websocket.server;
-
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.WebSocket;
-import java.nio.ByteBuffer;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.CompletionStage;
-
-/** Tests connectivity to the web socket server. */
-public class WebSocketEventClient {
-
- public static void main(String[] args) throws Exception {
- 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;
- }
-
- };
-
- HttpClient client = HttpClient.newHttpClient();
- CompletableFuture<WebSocket> ws = client.newWebSocketBuilder()
- .buildAsync(URI.create("ws://localhost:7070/cms/status/event/cms"), listener);
- WebSocket webSocket = ws.get();
- webSocket.request(Long.MAX_VALUE);
-
- Runtime.getRuntime().addShutdownHook(new Thread(() -> webSocket.sendClose(WebSocket.NORMAL_CLOSURE, "")));
-
- while (!webSocket.isInputClosed()) {
- webSocket.sendPing(ByteBuffer.allocate(0));
- Thread.sleep(10000);
- }
- }
-
-}
--- /dev/null
+package org.argeo.cms.client;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.net.http.HttpResponse.BodyHandler;
+import java.net.http.HttpResponse.BodyHandlers;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.X509Certificate;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginContext;
+
+import org.argeo.cms.auth.RemoteAuthUtils;
+
+public class SpnegoHttpClient {
+ public static void main(String[] args) throws MalformedURLException {
+// String principal = System.getProperty("javax.security.auth.login.name");
+ if (args.length == 0 ) {
+ System.err.println("usage: java -Djavax.security.auth.login.name=<principal@REALM> "
+ + SpnegoHttpClient.class.getName() + " <url>");
+ System.exit(1);
+ return;
+ }
+ String url = args[0];
+ URL u = new URL(url);
+ String server = u.getHost();
+
+ URL jaasUrl = SpnegoHttpClient.class.getResource("jaas.cfg");
+ System.setProperty("java.security.auth.login.config", jaasUrl.toExternalForm());
+ try {
+ LoginContext lc = new LoginContext("SINGLE_USER");
+ lc.login();
+
+// int responseCode = Subject.doAs(lc.getSubject(), new PrivilegedExceptionAction<Integer>() {
+//
+// public Integer run() throws Exception {
+
+// InputStream ins = u.openConnection().getInputStream();
+// BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
+// String str;
+// while ((str = reader.readLine()) != null)
+// System.out.println(str);
+// return 666;
+
+ HttpClient httpClient = openHttpClient(lc.getSubject());
+ String token = RemoteAuthUtils.getGssToken(lc.getSubject(), "HTTP", server);
+
+ HttpRequest request = HttpRequest.newBuilder().uri(u.toURI()) //
+ .header("Authorization", "Negotiate " + token) //
+ .build();
+ BodyHandler<String> bodyHandler = BodyHandlers.ofString();
+ HttpResponse<String> response = httpClient.send(request, bodyHandler);
+ System.out.println(response.body());
+ int responseCode = response.statusCode();
+// return response.statusCode();
+// }
+// });
+ System.out.println("Reponse code: " + responseCode);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static HttpClient openHttpClient(Subject subject) {
+ HttpClient client = HttpClient.newBuilder() //
+// .sslContext(insecureContext()) //
+ .version(HttpClient.Version.HTTP_1_1) //
+ .build();
+
+ return client;
+ }
+
+ static SSLContext insecureContext() {
+ TrustManager[] noopTrustManager = new TrustManager[] { new X509TrustManager() {
+ public void checkClientTrusted(X509Certificate[] xcs, String string) {
+ }
+
+ public void checkServerTrusted(X509Certificate[] xcs, String string) {
+ }
+
+ public X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+ } };
+ try {
+ SSLContext sc = SSLContext.getInstance("ssl");
+ sc.init(null, noopTrustManager, null);
+ return sc;
+ } catch (KeyManagementException | NoSuchAlgorithmException e) {
+ throw new IllegalStateException("Cannot create insecure SSL context ", e);
+ }
+ }
+
+}
--- /dev/null
+package org.argeo.cms.client;
+
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.WebSocket;
+import java.nio.ByteBuffer;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionStage;
+
+/** Tests connectivity to the web socket server. */
+public class WebSocketEventClient {
+
+ public static void main(String[] args) throws Exception {
+ if (args.length == 0) {
+ System.err.println("usage: java " + WebSocketEventClient.class.getName() + " <url>");
+ System.exit(1);
+ return;
+ }
+ URI uri = URI.create(args[0]);
+ 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;
+ }
+
+ };
+
+ HttpClient client = HttpClient.newHttpClient();
+ CompletableFuture<WebSocket> ws = client.newWebSocketBuilder().buildAsync(uri, listener);
+ WebSocket webSocket = ws.get();
+ webSocket.request(Long.MAX_VALUE);
+
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> webSocket.sendClose(WebSocket.NORMAL_CLOSURE, "")));
+
+ while (!webSocket.isInputClosed()) {
+ webSocket.sendPing(ByteBuffer.allocate(0));
+ Thread.sleep(10000);
+ }
+ }
+
+}
--- /dev/null
+SINGLE_USER {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useTicketCache=true
+ debug=true;
+};
+
+com.sun.security.jgss.krb5.initiate {
+ com.sun.security.auth.module.Krb5LoginModule
+ required useTicketCache=true;
+};
\ No newline at end of file
+++ /dev/null
-package org.argeo.cms.internal.http.client;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.net.http.HttpResponse.BodyHandler;
-import java.net.http.HttpResponse.BodyHandlers;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.security.cert.X509Certificate;
-
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-
-import org.argeo.cms.auth.RemoteAuthUtils;
-
-public class SpnegoHttpClient {
- public static void main(String[] args) throws MalformedURLException {
-// String principal = System.getProperty("javax.security.auth.login.name");
- if (args.length == 0 ) {
- System.err.println("usage: java -Djavax.security.auth.login.name=<principal@REALM> "
- + SpnegoHttpClient.class.getName() + " <url>");
- System.exit(1);
- return;
- }
- String url = args[0];
- URL u = new URL(url);
- String server = u.getHost();
-
- URL jaasUrl = SpnegoHttpClient.class.getResource("jaas.cfg");
- System.setProperty("java.security.auth.login.config", jaasUrl.toExternalForm());
- try {
- LoginContext lc = new LoginContext("SINGLE_USER");
- lc.login();
-
-// int responseCode = Subject.doAs(lc.getSubject(), new PrivilegedExceptionAction<Integer>() {
-//
-// public Integer run() throws Exception {
-
-// InputStream ins = u.openConnection().getInputStream();
-// BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
-// String str;
-// while ((str = reader.readLine()) != null)
-// System.out.println(str);
-// return 666;
-
- HttpClient httpClient = openHttpClient(lc.getSubject());
- String token = RemoteAuthUtils.getGssToken(lc.getSubject(), "HTTP", server);
-
- HttpRequest request = HttpRequest.newBuilder().uri(u.toURI()) //
- .header("Authorization", "Negotiate " + token) //
- .build();
- BodyHandler<String> bodyHandler = BodyHandlers.ofString();
- HttpResponse<String> response = httpClient.send(request, bodyHandler);
- System.out.println(response.body());
- int responseCode = response.statusCode();
-// return response.statusCode();
-// }
-// });
- System.out.println("Reponse code: " + responseCode);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private static HttpClient openHttpClient(Subject subject) {
- HttpClient client = HttpClient.newBuilder() //
-// .sslContext(insecureContext()) //
- .version(HttpClient.Version.HTTP_1_1) //
- .build();
-
- return client;
- }
-
- static SSLContext insecureContext() {
- TrustManager[] noopTrustManager = new TrustManager[] { new X509TrustManager() {
- public void checkClientTrusted(X509Certificate[] xcs, String string) {
- }
-
- public void checkServerTrusted(X509Certificate[] xcs, String string) {
- }
-
- public X509Certificate[] getAcceptedIssuers() {
- return null;
- }
- } };
- try {
- SSLContext sc = SSLContext.getInstance("ssl");
- sc.init(null, noopTrustManager, null);
- return sc;
- } catch (KeyManagementException | NoSuchAlgorithmException e) {
- throw new IllegalStateException("Cannot create insecure SSL context ", e);
- }
- }
-
-}
+++ /dev/null
-SINGLE_USER {
- com.sun.security.auth.module.Krb5LoginModule required
- useTicketCache=true
- debug=true;
-};
-
-com.sun.security.jgss.krb5.initiate {
- com.sun.security.auth.module.Krb5LoginModule
- required useTicketCache=true;
-};
\ No newline at end of file