1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-09 10:05:24 +02:00

Adding SSL autodetect

This commit is contained in:
David Dykstal 2006-04-26 22:19:55 +00:00
parent 21ed0c009f
commit af1afc9318
8 changed files with 117 additions and 6 deletions

View file

@ -480,9 +480,11 @@ public class DStoreConnectorService extends AbstractConnectorService implements
IIBMServerLauncher serverLauncher = getIBMServerLauncher(); IIBMServerLauncher serverLauncher = getIBMServerLauncher();
ServerLaunchType serverLauncherType = null; ServerLaunchType serverLauncherType = null;
boolean autoDetectSSL = true;
if (serverLauncher != null) if (serverLauncher != null)
{ {
serverLauncherType = serverLauncher.getServerLaunchType(); serverLauncherType = serverLauncher.getServerLaunchType();
autoDetectSSL = serverLauncher.getAutoDetectSSL();
} }
else else
{ {
@ -511,7 +513,8 @@ public class DStoreConnectorService extends AbstractConnectorService implements
IServerLauncher starter = getRemoteServerLauncher(); IServerLauncher starter = getRemoteServerLauncher();
starter.setSignonInformation(info); starter.setSignonInformation(info);
starter.setServerLauncherProperties(serverLauncher); starter.setServerLauncherProperties(serverLauncher);
if (autoDetectSSL) timeout = 3000;
else setSSLProperties(isUsingSSL());
int iServerPort = launchUsingRexec(monitor, info, serverLauncher); int iServerPort = launchUsingRexec(monitor, info, serverLauncher);
@ -528,7 +531,7 @@ public class DStoreConnectorService extends AbstractConnectorService implements
// connect to launched server // connect to launched server
connectStatus = clientConnection.connect(null, timeout); connectStatus = clientConnection.connect(null, timeout);
if (!connectStatus.isConnected() && connectStatus.getMessage().startsWith(ClientConnection.CANNOT_CONNECT)) if (!connectStatus.isConnected() && connectStatus.getMessage().startsWith(ClientConnection.CANNOT_CONNECT) && autoDetectSSL)
{ {
if (setSSLProperties(true)) if (setSSLProperties(true))
{ {

View file

@ -521,6 +521,9 @@ public class SystemResources extends NLS
public static String RESID_SUBSYSTEM_SSL_LABEL; public static String RESID_SUBSYSTEM_SSL_LABEL;
public static String RESID_SUBSYSTEM_SSL_TIP; public static String RESID_SUBSYSTEM_SSL_TIP;
public static String RESID_SUBSYSTEM_AUTODETECT_LABEL;
public static String RESID_SUBSYSTEM_AUTODETECT_TIP;
public static String RESID_SUBSYSTEM_SSL_ALERT_LABEL; public static String RESID_SUBSYSTEM_SSL_ALERT_LABEL;
public static String RESID_SUBSYSTEM_SSL_ALERT_TIP; public static String RESID_SUBSYSTEM_SSL_ALERT_TIP;

View file

@ -366,6 +366,8 @@ RESID_SUBSYSTEM_USERID_INHERITBUTTON_LOCAL_TIP=Click to inherit the user ID from
# Communications property page # Communications property page
RESID_SUBSYSTEM_SSL_LABEL=Use SSL for network communications RESID_SUBSYSTEM_SSL_LABEL=Use SSL for network communications
RESID_SUBSYSTEM_SSL_TIP=Use Secure Sockets Layer (SSL) for communicating with the server RESID_SUBSYSTEM_SSL_TIP=Use Secure Sockets Layer (SSL) for communicating with the server
RESID_SUBSYSTEM_AUTODETECT_LABEL=Auto-detect SSL
RESID_SUBSYSTEM_AUTODETECT_TIP=Automatically detect whether or not the server uses SSL. On some systems this may cause a longer connection time.
RESID_SUBSYSTEM_SSL_ALERT_LABEL=Alert me when connecting using SSL RESID_SUBSYSTEM_SSL_ALERT_LABEL=Alert me when connecting using SSL
RESID_SUBSYSTEM_SSL_ALERT_TIP=Show a confirmation dialog when the Secure Sockets Layer (SSL) is used for connecting with the RSE server RESID_SUBSYSTEM_SSL_ALERT_TIP=Show a confirmation dialog when the Secure Sockets Layer (SSL) is used for connecting with the RSE server
RESID_SUBSYSTEM_NONSSL_ALERT_LABEL=Alert me when connecting insecurely RESID_SUBSYSTEM_NONSSL_ALERT_LABEL=Alert me when connecting insecurely

View file

@ -45,7 +45,7 @@ import org.eclipse.swt.widgets.Text;
public class IBMServerLauncherForm extends IBMBaseServerLauncherForm public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
{ {
private Button _radioDaemon, _radioRexec, _radioNone, _checkBoxSSL; private Button _radioDaemon, _radioRexec, _radioNone, _checkBoxSSL, _checkBoxRexecSSL, _checkBoxAutoDetect;
private Text _fieldDaemonPort; private Text _fieldDaemonPort;
private Label _labelDaemonPort; private Label _labelDaemonPort;
@ -65,6 +65,7 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
private int _origRexecPort; private int _origRexecPort;
private int _origDaemonPort; private int _origDaemonPort;
private boolean _origUseSSL; private boolean _origUseSSL;
private boolean _origAutoDetect;
/** /**
* Constructor for EnvironmentVariablesForm. * Constructor for EnvironmentVariablesForm.
@ -85,7 +86,8 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
!_origInvocation.equals(getServerInvocation()) || !_origInvocation.equals(getServerInvocation()) ||
_origRexecPort != getREXECPortAsInt() || _origRexecPort != getREXECPortAsInt() ||
_origDaemonPort != getDaemonPortAsInt() || _origDaemonPort != getDaemonPortAsInt() ||
_origUseSSL != getUseSSL(); _origUseSSL != getUseSSL() ||
_origAutoDetect != getAutoDetect();
return isDirty; return isDirty;
} }
@ -99,6 +101,8 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
_fieldRexecPort.setEnabled(false); _fieldRexecPort.setEnabled(false);
_fieldDaemonPort.setEnabled(false); _fieldDaemonPort.setEnabled(false);
_checkBoxSSL.setEnabled(false); _checkBoxSSL.setEnabled(false);
_checkBoxRexecSSL.setEnabled(false);
_checkBoxAutoDetect.setEnabled(false);
} }
@ -182,6 +186,11 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
subRexecControls.setLayout(l2); subRexecControls.setLayout(l2);
subRexecControls.setLayoutData(d2); subRexecControls.setLayoutData(d2);
_checkBoxAutoDetect = SystemWidgetHelpers.createCheckBox(_rexecControls, SystemResources.RESID_SUBSYSTEM_AUTODETECT_LABEL, this);
_checkBoxAutoDetect.setToolTipText(SystemResources.RESID_SUBSYSTEM_AUTODETECT_TIP);
_checkBoxRexecSSL = SystemWidgetHelpers.createCheckBox(_rexecControls, SystemResources.RESID_SUBSYSTEM_SSL_LABEL, this);
_checkBoxRexecSSL.setToolTipText(SystemResources.RESID_SUBSYSTEM_SSL_TIP);
_rexecControls.setLayout(layout); _rexecControls.setLayout(layout);
_rexecControls.setLayoutData(data); _rexecControls.setLayoutData(data);
@ -221,6 +230,8 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
_labelRexecInvocation.setEnabled(_radioRexec.getSelection()); _labelRexecInvocation.setEnabled(_radioRexec.getSelection());
_labelRexecPort.setEnabled(_radioRexec.getSelection()); _labelRexecPort.setEnabled(_radioRexec.getSelection());
_fieldRexecPort.setEnabled(_radioRexec.getSelection()); _fieldRexecPort.setEnabled(_radioRexec.getSelection());
_checkBoxRexecSSL.setEnabled(_radioRexec.getSelection());
_checkBoxAutoDetect.setEnabled(_radioRexec.getSelection());
_checkBoxSSL.setEnabled(_radioNone.getSelection()); _checkBoxSSL.setEnabled(_radioNone.getSelection());
_fieldDaemonPort.setText(String.valueOf(DEFAULT_DAEMON_PORT)); _fieldDaemonPort.setText(String.valueOf(DEFAULT_DAEMON_PORT));
@ -242,6 +253,7 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
int rexecport = isl.getRexecPort(); // changed from getPortAsInt via d54335 int rexecport = isl.getRexecPort(); // changed from getPortAsInt via d54335
int daemonPort = isl.getDaemonPort(); // defect 54335 int daemonPort = isl.getDaemonPort(); // defect 54335
boolean useSSL = isl.getConnectorService().isUsingSSL(); boolean useSSL = isl.getConnectorService().isUsingSSL();
boolean autoDetectSSL = isl.getAutoDetectSSL();
// find out if daemon can be launched // find out if daemon can be launched
boolean allowDaemon = isl.isEnabledServerLaunchType(ServerLaunchType.DAEMON_LITERAL); boolean allowDaemon = isl.isEnabledServerLaunchType(ServerLaunchType.DAEMON_LITERAL);
@ -264,6 +276,7 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
setServerInvocation(invocation); setServerInvocation(invocation);
setREXECPort(rexecport); setREXECPort(rexecport);
setUseSSL(useSSL); setUseSSL(useSSL);
setAutoDetect(autoDetectSSL);
if (!allowDaemon && !allowRexec && !allowNo) { if (!allowDaemon && !allowRexec && !allowNo) {
disable(); disable();
@ -276,6 +289,7 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
_origRexecPort = getREXECPortAsInt(); _origRexecPort = getREXECPortAsInt();
_origDaemonPort = getDaemonPortAsInt(); _origDaemonPort = getDaemonPortAsInt();
_origUseSSL = getUseSSL(); _origUseSSL = getUseSSL();
_origAutoDetect = getAutoDetect();
} }
/** /**
@ -348,6 +362,7 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
int rexecPort = getREXECPortAsInt(); int rexecPort = getREXECPortAsInt();
int daemonPort = getDaemonPortAsInt(); int daemonPort = getDaemonPortAsInt();
boolean useSSL = getUseSSL(); boolean useSSL = getUseSSL();
boolean autoDetect = getAutoDetect();
IIBMServerLauncher isl = (IIBMServerLauncher)launcher; IIBMServerLauncher isl = (IIBMServerLauncher)launcher;
isl.setServerLaunchType(launchType); isl.setServerLaunchType(launchType);
@ -355,6 +370,7 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
isl.setServerScript(invocation); isl.setServerScript(invocation);
isl.setRexecPort(rexecPort); // changed from setPort via d54335. Phil isl.setRexecPort(rexecPort); // changed from setPort via d54335. Phil
isl.setDaemonPort(daemonPort); isl.setDaemonPort(daemonPort);
isl.setAutoDetectSSL(autoDetect);
isl.getConnectorService().setIsUsingSSL(useSSL); isl.getConnectorService().setIsUsingSSL(useSSL);
try try
{ {
@ -379,6 +395,8 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
_labelRexecInvocation.setEnabled(useRexec); _labelRexecInvocation.setEnabled(useRexec);
_fieldRexecPort.setEnabled(useRexec); _fieldRexecPort.setEnabled(useRexec);
_labelRexecPort.setEnabled(useRexec); _labelRexecPort.setEnabled(useRexec);
_checkBoxAutoDetect.setEnabled(useRexec);
_checkBoxRexecSSL.setEnabled(useRexec && !_checkBoxAutoDetect.getSelection());
_checkBoxSSL.setEnabled(_radioNone.getSelection()); _checkBoxSSL.setEnabled(_radioNone.getSelection());
verify(); verify();
@ -398,12 +416,28 @@ public class IBMServerLauncherForm extends IBMBaseServerLauncherForm
protected boolean getUseSSL() protected boolean getUseSSL()
{ {
return _checkBoxSSL.getSelection(); if (_radioRexec.getSelection())
return _checkBoxRexecSSL.getSelection();
else return _checkBoxSSL.getSelection();
}
protected boolean getAutoDetect()
{
if (_radioNone.getSelection()) return false;
if (_radioRexec.getSelection())
return _checkBoxAutoDetect.getSelection();
else return true;
} }
protected void setUseSSL(boolean use) protected void setUseSSL(boolean use)
{ {
_checkBoxSSL.setSelection(use); _checkBoxSSL.setSelection(use);
_checkBoxRexecSSL.setSelection(use);
}
protected void setAutoDetect(boolean use)
{
_checkBoxAutoDetect.setSelection(use);
} }
protected void setLaunchType(ServerLaunchType type) protected void setLaunchType(ServerLaunchType type)

View file

@ -21,10 +21,12 @@ public interface IPropertyType
public static final int TYPE_STRING = 0; public static final int TYPE_STRING = 0;
public static final int TYPE_INTEGER = 1; public static final int TYPE_INTEGER = 1;
public static final int TYPE_ENUM = 2; public static final int TYPE_ENUM = 2;
public static final int TYPE_BOOLEAN = 3;
public boolean isString(); public boolean isString();
public boolean isInteger(); public boolean isInteger();
public boolean isEnum(); public boolean isEnum();
public boolean isBoolean();
public int getType(); public int getType();
public String[] getEnumValues(); public String[] getEnumValues();

View file

@ -50,6 +50,10 @@ public class PropertyType implements IPropertyType
String[] enumValues = subString.split(","); String[] enumValues = subString.split(",");
setEnumValues(enumValues); setEnumValues(enumValues);
} }
else if (typeStr.equals(Boolean.class.toString()))
{
setType(TYPE_BOOLEAN);
}
else else
{ {
setType(TYPE_STRING); setType(TYPE_STRING);
@ -80,6 +84,11 @@ public class PropertyType implements IPropertyType
{ {
return _type == TYPE_ENUM; return _type == TYPE_ENUM;
} }
public boolean isBoolean()
{
return _type == TYPE_BOOLEAN;
}
public void setEnumValues(String[] enumValues) public void setEnumValues(String[] enumValues)
{ {
@ -117,6 +126,10 @@ public class PropertyType implements IPropertyType
} }
return buf.toString(); return buf.toString();
} }
else if (isBoolean())
{
return Boolean.class.getName();
}
return super.toString(); return super.toString();
} }

View file

@ -66,6 +66,7 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
protected final String KEY_SERVER_LAUNCH_TYPE_NAME = "server.launch.type.name"; protected final String KEY_SERVER_LAUNCH_TYPE_NAME = "server.launch.type.name";
protected final String KEY_SERVER_PATH = "server.path"; protected final String KEY_SERVER_PATH = "server.path";
protected final String KEY_SERVER_SCRIPT = "server.script"; protected final String KEY_SERVER_SCRIPT = "server.script";
protected final String KEY_AUTODETECT_SSL = "autodetect.ssl";
protected ServerLaunchType _serverLaunchType = SERVER_LAUNCH_TYPE_EDEFAULT; protected ServerLaunchType _serverLaunchType = SERVER_LAUNCH_TYPE_EDEFAULT;
@ -91,9 +92,14 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
protected static final String IBM_ATTRIBUTES_EDEFAULT = null; protected static final String IBM_ATTRIBUTES_EDEFAULT = null;
protected static final String RESTRICTED_TYPES_EDEFAULT = null; protected static final String RESTRICTED_TYPES_EDEFAULT = null;
protected static final boolean AUTODETECT_SSL_EDEFAULT = true;
protected boolean _autoDetectSSL = AUTODETECT_SSL_EDEFAULT;
protected PropertyType _serverLauncherEnumType; protected PropertyType _serverLauncherEnumType;
protected PropertyType _intPropertyType; protected PropertyType _intPropertyType;
protected PropertyType _booleanPropertyType;
protected IBMServerLauncher(String name, IConnectorService connectorService) protected IBMServerLauncher(String name, IConnectorService connectorService)
{ {
@ -109,6 +115,15 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
return _intPropertyType; return _intPropertyType;
} }
public IPropertyType getBooleanPropertyType()
{
if (_booleanPropertyType == null)
{
_booleanPropertyType = new PropertyType(IPropertyType.TYPE_BOOLEAN);
}
return _booleanPropertyType;
}
public IPropertyType getServerLauncherPropertyType() public IPropertyType getServerLauncherPropertyType()
{ {
if (_serverLauncherEnumType == null) if (_serverLauncherEnumType == null)
@ -146,6 +161,15 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
_daemonPort = Integer.parseInt(daemonPortProperty.getValue()); _daemonPort = Integer.parseInt(daemonPortProperty.getValue());
IProperty autoDetectProperty = set.getProperty(KEY_AUTODETECT_SSL);
if (autoDetectProperty != null)
{
autoDetectProperty.setEnabled(_serverLaunchType.getType() == ServerLaunchType.REXEC);
autoDetectProperty.setLabel(SystemResources.RESID_SUBSYSTEM_AUTODETECT_LABEL);
_autoDetectSSL = Boolean.getBoolean(autoDetectProperty.getValue());
}
boolean usingRexec = _serverLaunchType.getType() == ServerLaunchType.REXEC; boolean usingRexec = _serverLaunchType.getType() == ServerLaunchType.REXEC;
IProperty rexecPortProperty = set.getProperty(KEY_REXEC_PORT); IProperty rexecPortProperty = set.getProperty(KEY_REXEC_PORT);
rexecPortProperty.setEnabled(usingRexec); rexecPortProperty.setEnabled(usingRexec);
@ -193,6 +217,10 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
rexecPortProperty.setEnabled(usingRexec); rexecPortProperty.setEnabled(usingRexec);
rexecPortProperty.setLabel(SystemResources.RESID_CONNECTION_PORT_LABEL); rexecPortProperty.setLabel(SystemResources.RESID_CONNECTION_PORT_LABEL);
IProperty autoDetectSSLProperty = set.addProperty(KEY_AUTODETECT_SSL, ""+_autoDetectSSL, getBooleanPropertyType());
autoDetectSSLProperty.setEnabled(usingRexec);
autoDetectSSLProperty.setLabel(SystemResources.RESID_SUBSYSTEM_AUTODETECT_LABEL);
IProperty serverPathProperty = set.addProperty(KEY_SERVER_PATH, ""+_serverPath); IProperty serverPathProperty = set.addProperty(KEY_SERVER_PATH, ""+_serverPath);
serverPathProperty.setLabel(SystemResources.RESID_PROP_SERVERLAUNCHER_PATH); serverPathProperty.setLabel(SystemResources.RESID_PROP_SERVERLAUNCHER_PATH);
serverPathProperty.setEnabled(usingRexec); serverPathProperty.setEnabled(usingRexec);
@ -219,6 +247,7 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
ibmNewOne.setServerLaunchType(getServerLaunchTypeGen()); ibmNewOne.setServerLaunchType(getServerLaunchTypeGen());
ibmNewOne.setServerPath(getServerPath()); ibmNewOne.setServerPath(getServerPath());
ibmNewOne.setServerScript(getServerScript()); ibmNewOne.setServerScript(getServerScript());
ibmNewOne.setAutoDetectSSL(getAutoDetectSSL());
return ibmNewOne; return ibmNewOne;
} }
@ -305,6 +334,25 @@ public class IBMServerLauncher extends ServerLauncher implements IIBMServerLaunc
setDirty(true); setDirty(true);
} }
} }
/**
* Return the whether or not to auto-detect SSL
*/
public boolean getAutoDetectSSL()
{
return _autoDetectSSL;
}
/**
* Sets whether or not to auto-detect SSL
*/
public void setAutoDetectSSL(boolean auto)
{
if (auto != _autoDetectSSL)
{
_autoDetectSSL = auto;
setDirty(true);
}
}
/** /**
* Return the port used for the DAEMON option, as an Integer * Return the port used for the DAEMON option, as an Integer

View file

@ -111,7 +111,13 @@ public interface IIBMServerLauncher extends IServerLauncherProperties{
*/ */
public void setRexecPort(int newRexecPort); public void setRexecPort(int newRexecPort);
/**
* Sets whether or not to auto-detect SSL
*/
public void setAutoDetectSSL(boolean auto);
boolean getAutoDetectSSL();
int getDaemonPort(); int getDaemonPort();
/** /**