From 7a4ad79a06cd778c3989adc4062d39d7eaec125f Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Tue, 11 Feb 2025 20:30:56 +0000 Subject: [PATCH] Add Use SSL checkbox to Connect to Server dialog --- .../ConnectToServerDialog.java | 17 ++++++++++++++++- .../ConnectToServerDialogPreferences.java | 9 +++++++++ .../ConnectToServerDialogView.form | 17 +++++++++++++++++ .../ConnectToServerDialogView.java | 2 +- 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialog.java b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialog.java index eeba2650af..28b9bea366 100644 --- a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialog.java +++ b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialog.java @@ -260,6 +260,15 @@ public JCheckBox getUsePublicKeyCheckBox() { return (JCheckBox) getComponent("@usePublicKey"); } + @Nonnull + public JCheckBox getUseSSLCheckBox() { + if (getComponent("@useSSL") instanceof JCheckBox checkBox) { + return checkBox; + } else { + throw new AssertionError("Connect to server dialog should have a JCheckBox named @useSSL"); + } + } + private void handleOK() { String username = getUsernameTextField().getText().trim(); if (username.length() == 0) { @@ -311,8 +320,14 @@ private void handleOK() { } getHostTextField().setText(host); + boolean useSSL = getUseSSLCheckBox().isSelected(); + // OK - connectionDetails = new RemoteServerConfig.Socket(host, portTemp); + if (useSSL) { + connectionDetails = new RemoteServerConfig.SSLSocket(host, portTemp); + } else { + connectionDetails = new RemoteServerConfig.Socket(host, portTemp); + } } else if (SwingUtil.hasComponent(selectedPanel, "rptoolsPanel")) { String serverName = getServerNameTextField().getText().trim(); if (serverName.length() == 0) { diff --git a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogPreferences.java b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogPreferences.java index 2ee18db341..21d6b1fd4e 100644 --- a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogPreferences.java +++ b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogPreferences.java @@ -31,6 +31,7 @@ public class ConnectToServerDialogPreferences { private static final String KEY_TAB = "tab"; private static final String KEY_SERVER_NAME = "serverName"; private static final String USE_PUBLIC_KEY = "usePublicKey"; + private static final String USE_SSL = "useSSL"; private static final String USE_WEB_RTC = "useWebRTC"; @Nonnull @@ -100,4 +101,12 @@ public boolean getUseWebRTC() { public void setUseWebRTC(boolean useWebRTC) { prefs.putBoolean(USE_WEB_RTC, useWebRTC); } + + public boolean getUseSSL() { + return prefs.getBoolean(USE_SSL, false); + } + + public void setUseSSL(boolean useSSL) { + prefs.putBoolean(USE_SSL, useSSL); + } } diff --git a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.form b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.form index e80a70480e..1338b15232 100644 --- a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.form +++ b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.form @@ -227,6 +227,23 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.java b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.java index 41c249f5f5..c6e47598d5 100644 --- a/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.java +++ b/src/main/java/net/rptools/maptool/client/ui/connecttoserverdialog/ConnectToServerDialogView.java @@ -14,11 +14,11 @@ */ package net.rptools.maptool.client.ui.connecttoserverdialog; -import java.awt.*; import javax.swing.*; public class ConnectToServerDialogView { private JPanel mainPanel; + private JCheckBox directUseSSLCheckbox; public JComponent getRootComponent() { return mainPanel;