From cdd9d214cbc042d200910c13b636e3267daa479e Mon Sep 17 00:00:00 2001 From: Michael Spector Date: Thu, 28 Aug 2014 13:39:09 +0300 Subject: [PATCH] Implemented SSL support --- assembly.xml | 2 + doc/example.png | Bin 96003 -> 139068 bytes pom.xml | 10 + .../mqtt/producer/MQTTProducerDialog.java | 420 +++++++++++++++--- .../mqtt/producer/MQTTProducerMeta.java | 225 +++++++++- .../mqtt/producer/MQTTProducerStep.java | 21 +- .../producer/SSLSocketFactoryGenerator.java | 88 ++++ .../messages/messages_en_US.properties | 19 + src/main/resources/plugin.xml | 2 + 9 files changed, 734 insertions(+), 53 deletions(-) create mode 100644 src/main/java/com/ruckuswireless/pentaho/mqtt/producer/SSLSocketFactoryGenerator.java diff --git a/assembly.xml b/assembly.xml index 031ae05..7d55db0 100644 --- a/assembly.xml +++ b/assembly.xml @@ -20,6 +20,8 @@ lib mqtt-client-0.4.0.jar + bcprov-jdk15on-1.48.jar + bcpkix-jdk15on-1.48.jar diff --git a/doc/example.png b/doc/example.png index a7e9496dc019ba4255e79cb35d0a8d87a6e47895..d935cb88749d9eb8146572984bfb94184d915114 100644 GIT binary patch literal 139068 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 AGXMYp literal 96003 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

sRoQsOBp9tm?4nRa} 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 GgZ>RiCgvFc diff --git a/pom.xml b/pom.xml index f19c4b2..68cd173 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,16 @@ mqtt-client 0.4.0 + + org.bouncycastle + bcprov-jdk15on + 1.48 + + + org.bouncycastle + bcpkix-jdk15on + 1.48 + diff --git a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerDialog.java b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerDialog.java index 37d3888..a87a992 100644 --- a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerDialog.java +++ b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerDialog.java @@ -2,6 +2,8 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; @@ -12,6 +14,7 @@ import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; @@ -20,6 +23,7 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.pentaho.di.core.Const; +import org.pentaho.di.core.Props; import org.pentaho.di.core.exception.KettleStepException; import org.pentaho.di.core.row.RowMeta; import org.pentaho.di.core.row.RowMetaInterface; @@ -40,14 +44,33 @@ public class MQTTProducerDialog extends BaseStepDialog implements StepDialogInterface { private MQTTProducerMeta producerMeta; + + private CCombo wInputField; + + private CTabFolder wTabFolder; + + private CTabItem wGeneralTab; private TextVar wBroker; private TextVar wTopicName; private TextVar wClientID; private TextVar wTimeout; private TextVar wQOS; - private CCombo wInputField; - public MQTTProducerDialog(Shell parent, Object in, TransMeta tr, String sname) { + private CTabItem wCredentialsTab; + private Button wRequiresAuth; + private Label wlUsername; + private TextVar wUsername; + private Label wlPassword; + private TextVar wPassword; + + private CTabItem wSSLTab; + private TextVar wCAFile; + private TextVar wCertFile; + private TextVar wKeyFile; + private TextVar wKeyPassword; + + public MQTTProducerDialog(Shell parent, Object in, TransMeta tr, + String sname) { super(parent, (BaseStepMeta) in, tr, sname); producerMeta = (MQTTProducerMeta) in; } @@ -58,7 +81,8 @@ public MQTTProducerDialog(Shell parent, BaseStepMeta baseStepMeta, producerMeta = (MQTTProducerMeta) baseStepMeta; } - public MQTTProducerDialog(Shell parent, int nr, BaseStepMeta in, TransMeta tr) { + public MQTTProducerDialog(Shell parent, int nr, BaseStepMeta in, + TransMeta tr) { super(parent, nr, in, tr); producerMeta = (MQTTProducerMeta) in; } @@ -109,28 +133,84 @@ public void modifyText(ModifyEvent e) { wStepname.setLayoutData(fdStepname); Control lastControl = wStepname; + // Input field + RowMetaInterface previousFields; + try { + previousFields = transMeta.getPrevStepFields(stepMeta); + } catch (KettleStepException e) { + new ErrorDialog( + shell, + BaseMessages.getString("System.Dialog.Error.Title"), + Messages.getString("MQTTClientDialog.ErrorDialog.UnableToGetInputFields.Message"), + e); + previousFields = new RowMeta(); + } + Label wlInputField = new Label(shell, SWT.RIGHT); + wlInputField.setText(Messages + .getString("MQTTClientDialog.FieldName.Label")); + props.setLook(wlInputField); + FormData fdlInputField = new FormData(); + fdlInputField.top = new FormAttachment(lastControl, margin); + fdlInputField.left = new FormAttachment(0, 0); + fdlInputField.right = new FormAttachment(middle, -margin); + wlInputField.setLayoutData(fdlInputField); + wInputField = new CCombo(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); + wInputField.setToolTipText(Messages + .getString("MQTTClientDialog.FieldName.Tooltip")); + wInputField.setItems(previousFields.getFieldNames()); + props.setLook(wInputField); + wInputField.addModifyListener(lsMod); + FormData fdFilename = new FormData(); + fdFilename.top = new FormAttachment(lastControl, margin); + fdFilename.left = new FormAttachment(middle, 0); + fdFilename.right = new FormAttachment(100, 0); + wInputField.setLayoutData(fdFilename); + lastControl = wInputField; + + // ==================== + // START OF TAB FOLDER + // ==================== + wTabFolder = new CTabFolder(shell, SWT.BORDER); + props.setLook(wTabFolder, Props.WIDGET_STYLE_TAB); + + // ==================== + // GENERAL TAB + // ==================== + + wGeneralTab = new CTabItem(wTabFolder, SWT.NONE); + wGeneralTab.setText(Messages + .getString("MQTTClientDialog.GeneralTab.Label")); //$NON-NLS-1$ + + FormLayout mainLayout = new FormLayout(); + mainLayout.marginWidth = 3; + mainLayout.marginHeight = 3; + + Composite wGeneralTabComp = new Composite(wTabFolder, SWT.NONE); + props.setLook(wGeneralTabComp); + wGeneralTabComp.setLayout(mainLayout); + // Broker URL - Label wlBroker = new Label(shell, SWT.RIGHT); + Label wlBroker = new Label(wGeneralTabComp, SWT.RIGHT); wlBroker.setText(Messages.getString("MQTTClientDialog.Broker.Label")); props.setLook(wlBroker); FormData fdlBroker = new FormData(); - fdlBroker.top = new FormAttachment(lastControl, margin); + fdlBroker.top = new FormAttachment(0, margin * 2); fdlBroker.left = new FormAttachment(0, 0); fdlBroker.right = new FormAttachment(middle, -margin); wlBroker.setLayoutData(fdlBroker); - wBroker = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT + wBroker = new TextVar(transMeta, wGeneralTabComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wBroker); wBroker.addModifyListener(lsMod); FormData fdBroker = new FormData(); - fdBroker.top = new FormAttachment(lastControl, margin); + fdBroker.top = new FormAttachment(0, margin * 2); fdBroker.left = new FormAttachment(middle, 0); fdBroker.right = new FormAttachment(100, 0); wBroker.setLayoutData(fdBroker); lastControl = wBroker; // Topic name - Label wlTopicName = new Label(shell, SWT.RIGHT); + Label wlTopicName = new Label(wGeneralTabComp, SWT.RIGHT); wlTopicName.setText(Messages .getString("MQTTClientDialog.TopicName.Label")); props.setLook(wlTopicName); @@ -139,8 +219,8 @@ public void modifyText(ModifyEvent e) { fdlTopicName.left = new FormAttachment(0, 0); fdlTopicName.right = new FormAttachment(middle, -margin); wlTopicName.setLayoutData(fdlTopicName); - wTopicName = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT - | SWT.BORDER); + wTopicName = new TextVar(transMeta, wGeneralTabComp, SWT.SINGLE + | SWT.LEFT | SWT.BORDER); props.setLook(wTopicName); wTopicName.addModifyListener(lsMod); FormData fdTopicName = new FormData(); @@ -151,7 +231,7 @@ public void modifyText(ModifyEvent e) { lastControl = wTopicName; // Client ID - Label wlClientID = new Label(shell, SWT.RIGHT); + Label wlClientID = new Label(wGeneralTabComp, SWT.RIGHT); wlClientID.setText(Messages .getString("MQTTClientDialog.ClientID.Label")); props.setLook(wlClientID); @@ -160,8 +240,8 @@ public void modifyText(ModifyEvent e) { fdlClientID.left = new FormAttachment(0, 0); fdlClientID.right = new FormAttachment(middle, -margin); wlClientID.setLayoutData(fdlClientID); - wClientID = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT - | SWT.BORDER); + wClientID = new TextVar(transMeta, wGeneralTabComp, SWT.SINGLE + | SWT.LEFT | SWT.BORDER); props.setLook(wClientID); wClientID.addModifyListener(lsMod); FormData fdClientID = new FormData(); @@ -172,7 +252,7 @@ public void modifyText(ModifyEvent e) { lastControl = wClientID; // Connection timeout - Label wlConnectionTimeout = new Label(shell, SWT.RIGHT); + Label wlConnectionTimeout = new Label(wGeneralTabComp, SWT.RIGHT); wlConnectionTimeout.setText(Messages .getString("MQTTClientDialog.ConnectionTimeout.Label")); props.setLook(wlConnectionTimeout); @@ -181,8 +261,8 @@ public void modifyText(ModifyEvent e) { fdlConnectionTimeout.left = new FormAttachment(0, 0); fdlConnectionTimeout.right = new FormAttachment(middle, -margin); wlConnectionTimeout.setLayoutData(fdlConnectionTimeout); - wTimeout = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT - | SWT.BORDER); + wTimeout = new TextVar(transMeta, wGeneralTabComp, SWT.SINGLE + | SWT.LEFT | SWT.BORDER); props.setLook(wTimeout); wTimeout.addModifyListener(lsMod); FormData fdConnectionTimeout = new FormData(); @@ -193,7 +273,7 @@ public void modifyText(ModifyEvent e) { lastControl = wTimeout; // QOS - Label wlQOS = new Label(shell, SWT.RIGHT); + Label wlQOS = new Label(wGeneralTabComp, SWT.RIGHT); wlQOS.setText(Messages.getString("MQTTClientDialog.QOS.Label")); props.setLook(wlQOS); FormData fdlQOS = new FormData(); @@ -201,7 +281,8 @@ public void modifyText(ModifyEvent e) { fdlQOS.left = new FormAttachment(0, 0); fdlQOS.right = new FormAttachment(middle, -margin); wlQOS.setLayoutData(fdlQOS); - wQOS = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); + wQOS = new TextVar(transMeta, wGeneralTabComp, SWT.SINGLE | SWT.LEFT + | SWT.BORDER); props.setLook(wQOS); wQOS.addModifyListener(lsMod); FormData fdQOS = new FormData(); @@ -211,39 +292,241 @@ public void modifyText(ModifyEvent e) { wQOS.setLayoutData(fdQOS); lastControl = wQOS; - // Input field - RowMetaInterface previousFields; - try { - previousFields = transMeta.getPrevStepFields(stepMeta); - } catch (KettleStepException e) { - new ErrorDialog( - shell, - BaseMessages.getString("System.Dialog.Error.Title"), - Messages.getString("MQTTClientDialog.ErrorDialog.UnableToGetInputFields.Message"), - e); - previousFields = new RowMeta(); - } - Label wlInputField = new Label(shell, SWT.RIGHT); - wlInputField.setText(Messages - .getString("MQTTClientDialog.FieldName.Label")); - props.setLook(wlInputField); - FormData fdlInputField = new FormData(); - fdlInputField.top = new FormAttachment(lastControl, margin); - fdlInputField.left = new FormAttachment(0, 0); - fdlInputField.right = new FormAttachment(middle, -margin); - wlInputField.setLayoutData(fdlInputField); - wInputField = new CCombo(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); - wInputField.setItems(previousFields.getFieldNames()); - props.setLook(wInputField); - wInputField.addModifyListener(lsMod); - FormData fdFilename = new FormData(); - fdFilename.top = new FormAttachment(lastControl, margin); - fdFilename.left = new FormAttachment(middle, 0); - fdFilename.right = new FormAttachment(100, 0); - wInputField.setLayoutData(fdFilename); - lastControl = wInputField; + FormData fdGeneralTabComp = new FormData(); + fdGeneralTabComp.left = new FormAttachment(0, 0); + fdGeneralTabComp.top = new FormAttachment(0, 0); + fdGeneralTabComp.right = new FormAttachment(100, 0); + fdGeneralTabComp.bottom = new FormAttachment(100, 0); + wGeneralTabComp.setLayoutData(fdGeneralTabComp); + + wGeneralTabComp.layout(); + wGeneralTab.setControl(wGeneralTabComp); + + // ==================== + // CREDENTIALS TAB + // ==================== + wCredentialsTab = new CTabItem(wTabFolder, SWT.NONE); + wCredentialsTab.setText(Messages + .getString("MQTTClientDialog.CredentialsTab.Title")); //$NON-NLS-1$ + + Composite wCredentialsComp = new Composite(wTabFolder, SWT.NONE); + props.setLook(wCredentialsComp); + + FormLayout fieldsCompLayout = new FormLayout(); + fieldsCompLayout.marginWidth = Const.FORM_MARGIN; + fieldsCompLayout.marginHeight = Const.FORM_MARGIN; + wCredentialsComp.setLayout(fieldsCompLayout); + + Label wlRequiresAuth = new Label(wCredentialsComp, SWT.RIGHT); + wlRequiresAuth.setText(Messages + .getString("MQTTClientDialog.RequireAuth.Label")); + props.setLook(wlRequiresAuth); + FormData fdlRequriesAuth = new FormData(); + fdlRequriesAuth.left = new FormAttachment(0, 0); + fdlRequriesAuth.top = new FormAttachment(0, margin * 2); + fdlRequriesAuth.right = new FormAttachment(middle, -margin); + wlRequiresAuth.setLayoutData(fdlRequriesAuth); + wRequiresAuth = new Button(wCredentialsComp, SWT.CHECK); + props.setLook(wRequiresAuth); + FormData fdRequiresAuth = new FormData(); + fdRequiresAuth.left = new FormAttachment(middle, 0); + fdRequiresAuth.top = new FormAttachment(0, margin * 2); + fdRequiresAuth.right = new FormAttachment(100, 0); + wRequiresAuth.setLayoutData(fdRequiresAuth); + + wRequiresAuth.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent arg0) { + boolean enabled = wRequiresAuth.getSelection(); + wlUsername.setEnabled(enabled); + wUsername.setEnabled(enabled); + wlPassword.setEnabled(enabled); + wPassword.setEnabled(enabled); + } + }); + lastControl = wRequiresAuth; + + // Username field + wlUsername = new Label(wCredentialsComp, SWT.RIGHT); + wlUsername.setEnabled(false); + wlUsername.setText(Messages + .getString("MQTTClientDialog.Username.Label")); //$NON-NLS-1$ + props.setLook(wlUsername); + FormData fdlUsername = new FormData(); + fdlUsername.left = new FormAttachment(0, -margin); + fdlUsername.right = new FormAttachment(middle, -2 * margin); + fdlUsername.top = new FormAttachment(lastControl, 2 * margin); + wlUsername.setLayoutData(fdlUsername); + + wUsername = new TextVar(transMeta, wCredentialsComp, SWT.SINGLE + | SWT.LEFT | SWT.BORDER); + wUsername.setEnabled(false); + wUsername.setToolTipText(Messages + .getString("MQTTClientDialog.Username.Tooltip")); + props.setLook(wUsername); + wUsername.addModifyListener(lsMod); + FormData fdResult = new FormData(); + fdResult.left = new FormAttachment(middle, -margin); + fdResult.top = new FormAttachment(lastControl, 2 * margin); + fdResult.right = new FormAttachment(100, 0); + wUsername.setLayoutData(fdResult); + lastControl = wUsername; + + // Password field + wlPassword = new Label(wCredentialsComp, SWT.RIGHT); + wlPassword.setEnabled(false); + wlPassword.setText(Messages + .getString("MQTTClientDialog.Password.Label")); //$NON-NLS-1$ + props.setLook(wlPassword); + FormData fdlPassword = new FormData(); + fdlPassword.left = new FormAttachment(0, -margin); + fdlPassword.right = new FormAttachment(middle, -2 * margin); + fdlPassword.top = new FormAttachment(lastControl, margin); + wlPassword.setLayoutData(fdlPassword); - // Buttons + wPassword = new TextVar(transMeta, wCredentialsComp, SWT.SINGLE + | SWT.LEFT | SWT.BORDER | SWT.PASSWORD); + wPassword.setEnabled(false); + wPassword.setToolTipText(Messages + .getString("MQTTClientDialog.Password.Tooltip")); + props.setLook(wPassword); + wPassword.addModifyListener(lsMod); + FormData fdPassword = new FormData(); + fdPassword.left = new FormAttachment(middle, -margin); + fdPassword.top = new FormAttachment(lastControl, margin); + fdPassword.right = new FormAttachment(100, 0); + wPassword.setLayoutData(fdPassword); + + FormData fdCredentialsComp = new FormData(); + fdCredentialsComp.left = new FormAttachment(0, 0); + fdCredentialsComp.top = new FormAttachment(0, 0); + fdCredentialsComp.right = new FormAttachment(100, 0); + fdCredentialsComp.bottom = new FormAttachment(100, 0); + wCredentialsComp.setLayoutData(fdCredentialsComp); + + wCredentialsComp.layout(); + wCredentialsTab.setControl(wCredentialsComp); + + // ==================== + // SSL TAB + // ==================== + wSSLTab = new CTabItem(wTabFolder, SWT.NONE); + wSSLTab.setText(Messages.getString("MQTTClientDialog.SSLTab.Label")); //$NON-NLS-1$ + + Composite wSSLComp = new Composite(wTabFolder, SWT.NONE); + props.setLook(wSSLComp); + + FormLayout sslCompLayout = new FormLayout(); + sslCompLayout.marginWidth = Const.FORM_MARGIN; + sslCompLayout.marginHeight = Const.FORM_MARGIN; + wSSLComp.setLayout(sslCompLayout); + + // Server CA file path + Label wlCAFile = new Label(wSSLComp, SWT.RIGHT); + wlCAFile.setText(Messages.getString("MQTTClientDialog.CAFile.Label")); //$NON-NLS-1$ + props.setLook(wlCAFile); + FormData fdlCAFile = new FormData(); + fdlCAFile.left = new FormAttachment(0, -margin); + fdlCAFile.right = new FormAttachment(middle, -2 * margin); + fdlCAFile.top = new FormAttachment(0, 2 * margin); + wlCAFile.setLayoutData(fdlCAFile); + + wCAFile = new TextVar(transMeta, wSSLComp, SWT.SINGLE | SWT.LEFT + | SWT.BORDER); + wCAFile.setToolTipText(Messages + .getString("MQTTClientDialog.CAFile.Tooltip")); + props.setLook(wCAFile); + wCAFile.addModifyListener(lsMod); + FormData fdCAFile = new FormData(); + fdCAFile.left = new FormAttachment(middle, -margin); + fdCAFile.top = new FormAttachment(0, 2 * margin); + fdCAFile.right = new FormAttachment(100, 0); + wCAFile.setLayoutData(fdCAFile); + lastControl = wCAFile; + + // Client certificate file path + Label wlCertFile = new Label(wSSLComp, SWT.RIGHT); + wlCertFile.setText(Messages + .getString("MQTTClientDialog.CertFile.Label")); //$NON-NLS-1$ + props.setLook(wlCertFile); + FormData fdlCertFile = new FormData(); + fdlCertFile.left = new FormAttachment(0, -margin); + fdlCertFile.right = new FormAttachment(middle, -2 * margin); + fdlCertFile.top = new FormAttachment(lastControl, margin); + wlCertFile.setLayoutData(fdlCertFile); + + wCertFile = new TextVar(transMeta, wSSLComp, SWT.SINGLE | SWT.LEFT + | SWT.BORDER); + wCertFile.setToolTipText(Messages + .getString("MQTTClientDialog.CertFile.Tooltip")); + props.setLook(wCertFile); + wCertFile.addModifyListener(lsMod); + FormData fdCertFile = new FormData(); + fdCertFile.left = new FormAttachment(middle, -margin); + fdCertFile.top = new FormAttachment(lastControl, margin); + fdCertFile.right = new FormAttachment(100, 0); + wCertFile.setLayoutData(fdCertFile); + lastControl = wCertFile; + + // Client key file path + Label wlKeyFile = new Label(wSSLComp, SWT.RIGHT); + wlKeyFile.setText(Messages.getString("MQTTClientDialog.KeyFile.Label")); //$NON-NLS-1$ + props.setLook(wlKeyFile); + FormData fdlKeyFile = new FormData(); + fdlKeyFile.left = new FormAttachment(0, -margin); + fdlKeyFile.right = new FormAttachment(middle, -2 * margin); + fdlKeyFile.top = new FormAttachment(lastControl, margin); + wlKeyFile.setLayoutData(fdlKeyFile); + + wKeyFile = new TextVar(transMeta, wSSLComp, SWT.SINGLE | SWT.LEFT + | SWT.BORDER); + wKeyFile.setToolTipText(Messages + .getString("MQTTClientDialog.KeyFile.Tooltip")); + props.setLook(wKeyFile); + wKeyFile.addModifyListener(lsMod); + FormData fdKeyFile = new FormData(); + fdKeyFile.left = new FormAttachment(middle, -margin); + fdKeyFile.top = new FormAttachment(lastControl, margin); + fdKeyFile.right = new FormAttachment(100, 0); + wKeyFile.setLayoutData(fdKeyFile); + lastControl = wKeyFile; + + // Client key file password path + Label wlKeyPassword = new Label(wSSLComp, SWT.RIGHT); + wlKeyPassword.setText(Messages + .getString("MQTTClientDialog.KeyPassword.Label")); //$NON-NLS-1$ + props.setLook(wlKeyPassword); + FormData fdlKeyPassword = new FormData(); + fdlKeyPassword.left = new FormAttachment(0, -margin); + fdlKeyPassword.right = new FormAttachment(middle, -2 * margin); + fdlKeyPassword.top = new FormAttachment(lastControl, margin); + wlKeyPassword.setLayoutData(fdlKeyPassword); + + wKeyPassword = new TextVar(transMeta, wSSLComp, SWT.SINGLE | SWT.LEFT + | SWT.BORDER | SWT.PASSWORD); + wKeyPassword.setToolTipText(Messages + .getString("MQTTClientDialog.KeyPassword.Tooltip")); + props.setLook(wKeyPassword); + wKeyPassword.addModifyListener(lsMod); + FormData fdKeyPassword = new FormData(); + fdKeyPassword.left = new FormAttachment(middle, -margin); + fdKeyPassword.top = new FormAttachment(lastControl, margin); + fdKeyPassword.right = new FormAttachment(100, 0); + wKeyPassword.setLayoutData(fdKeyPassword); + lastControl = wKeyPassword; + + FormData fdSSLComp = new FormData(); + fdSSLComp.left = new FormAttachment(0, 0); + fdSSLComp.top = new FormAttachment(0, 0); + fdSSLComp.right = new FormAttachment(100, 0); + fdSSLComp.bottom = new FormAttachment(100, 0); + wSSLComp.setLayoutData(fdSSLComp); + + wSSLComp.layout(); + wSSLTab.setControl(wSSLComp); + + // ==================== + // BUTTONS + // ==================== wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString("System.Button.OK")); //$NON-NLS-1$ wCancel = new Button(shell, SWT.PUSH); @@ -251,6 +534,16 @@ public void modifyText(ModifyEvent e) { setButtonPositions(new Button[] { wOK, wCancel }, margin, null); + // ==================== + // END OF TAB FOLDER + // ==================== + FormData fdTabFolder = new FormData(); + fdTabFolder.left = new FormAttachment(0, 0); + fdTabFolder.top = new FormAttachment(wInputField, margin); + fdTabFolder.right = new FormAttachment(100, 0); + fdTabFolder.bottom = new FormAttachment(wOK, -margin); + wTabFolder.setLayoutData(fdTabFolder); + // Add listeners lsCancel = new Listener() { public void handleEvent(Event e) { @@ -274,6 +567,8 @@ public void widgetDefaultSelected(SelectionEvent e) { wTopicName.addSelectionListener(lsDef); wInputField.addSelectionListener(lsDef); + wTabFolder.setSelection(0); + // Detect X or ALT-F4 or something that kills this window... shell.addShellListener(new ShellAdapter() { public void shellClosed(ShellEvent e) { @@ -309,6 +604,18 @@ private void getData(MQTTProducerMeta producerMeta, boolean copyStepname) { wClientID.setText(Const.NVL(producerMeta.getClientId(), "")); wTimeout.setText(Const.NVL(producerMeta.getTimeout(), "10000")); wQOS.setText(Const.NVL(producerMeta.getQoS(), "0")); + + wRequiresAuth.setSelection(producerMeta.isRequiresAuth()); + wRequiresAuth.notifyListeners(SWT.Selection, new Event()); + + wUsername.setText(Const.NVL(producerMeta.getUsername(), "")); + wPassword.setText(Const.NVL(producerMeta.getPassword(), "")); + + wCAFile.setText(Const.NVL(producerMeta.getSSLCaFile(), "")); + wCertFile.setText(Const.NVL(producerMeta.getSSLCertFile(), "")); + wKeyFile.setText(Const.NVL(producerMeta.getSSLKeyFile(), "")); + wKeyPassword.setText(Const.NVL(producerMeta.getSSLKeyFilePass(), "")); + wStepname.selectAll(); } @@ -328,6 +635,19 @@ private void setData(MQTTProducerMeta producerMeta) { producerMeta.setClientId(wClientID.getText()); producerMeta.setTimeout(wTimeout.getText()); producerMeta.setQoS(wQOS.getText()); + + boolean requiresAuth = wRequiresAuth.getSelection(); + producerMeta.setRequiresAuth(requiresAuth); + if (requiresAuth) { + producerMeta.setUsername(wUsername.getText()); + producerMeta.setPassword(wPassword.getText()); + } + + producerMeta.setSSLCaFile(wCAFile.getText()); + producerMeta.setSSLCertFile(wCertFile.getText()); + producerMeta.setSSLKeyFile(wKeyFile.getText()); + producerMeta.setSSLKeyFilePass(wKeyPassword.getText()); + producerMeta.setChanged(); } diff --git a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerMeta.java b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerMeta.java index e5ea289..1969cf1 100644 --- a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerMeta.java +++ b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerMeta.java @@ -5,6 +5,7 @@ import org.pentaho.di.core.CheckResult; import org.pentaho.di.core.CheckResultInterface; +import org.pentaho.di.core.Const; import org.pentaho.di.core.Counter; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.exception.KettleException; @@ -36,6 +37,13 @@ public class MQTTProducerMeta extends BaseStepMeta implements StepMetaInterface private String clientId; private String timeout = "10000"; private String qos = "0"; + private boolean requiresAuth; + private String username; + private String password; + private String sslCaFile; + private String sslCertFile; + private String sslKeyFile; + private String sslKeyFilePass; /** * @return Broker URL @@ -127,6 +135,111 @@ public void setQoS(String qos) { this.qos = qos; } + /** + * @return Whether MQTT broker requires authentication + */ + public boolean isRequiresAuth() { + return requiresAuth; + } + + /** + * @param requiresAuth + * Whether MQTT broker requires authentication + */ + public void setRequiresAuth(boolean requiresAuth) { + this.requiresAuth = requiresAuth; + } + + /** + * @return Username to MQTT broker + */ + public String getUsername() { + return username; + } + + /** + * @param username + * Username to MQTT broker + */ + public void setUsername(String username) { + this.username = username; + } + + /** + * @return Password to MQTT broker + */ + public String getPassword() { + return password; + } + + /** + * @param password + * Password to MQTT broker + */ + public void setPassword(String password) { + this.password = password; + } + + /** + * @return Server CA file + */ + public String getSSLCaFile() { + return sslCaFile; + } + + /** + * @param sslCaFile + * Server CA file + */ + public void setSSLCaFile(String sslCaFile) { + this.sslCaFile = sslCaFile; + } + + /** + * @return Client certificate file + */ + public String getSSLCertFile() { + return sslCertFile; + } + + /** + * @param sslCertFile + * Client certificate file + */ + public void setSSLCertFile(String sslCertFile) { + this.sslCertFile = sslCertFile; + } + + /** + * @return Client key file + */ + public String getSSLKeyFile() { + return sslKeyFile; + } + + /** + * @param sslKeyFile + * Client key file + */ + public void setSSLKeyFile(String sslKeyFile) { + this.sslKeyFile = sslKeyFile; + } + + /** + * @return Client key file password + */ + public String getSSLKeyFilePass() { + return sslKeyFilePass; + } + + /** + * @param sslKeyFilePass + * Client key file password + */ + public void setSSLKeyFilePass(String sslKeyFilePass) { + this.sslKeyFilePass = sslKeyFilePass; + } + public void check(List remarks, TransMeta transMeta, StepMeta stepMeta, RowMetaInterface prev, String input[], String output[], RowMetaInterface info) { @@ -162,13 +275,27 @@ public void check(List remarks, TransMeta transMeta, Messages.getString("MQTTClientMeta.Check.InvalidQOS"), stepMeta)); } + if (requiresAuth) { + if (username == null) { + remarks.add(new CheckResult( + CheckResultInterface.TYPE_RESULT_ERROR, + Messages.getString("MQTTClientMeta.Check.InvalidUsername"), + stepMeta)); + } + if (password == null) { + remarks.add(new CheckResult( + CheckResultInterface.TYPE_RESULT_ERROR, + Messages.getString("MQTTClientMeta.Check.InvalidPassword"), + stepMeta)); + } + } } public StepInterface getStep(StepMeta stepMeta, StepDataInterface stepDataInterface, int cnr, TransMeta transMeta, Trans trans) { - return new MQTTProducerStep(stepMeta, stepDataInterface, cnr, transMeta, - trans); + return new MQTTProducerStep(stepMeta, stepDataInterface, cnr, + transMeta, trans); } public StepDataInterface getStepData() { @@ -185,6 +312,20 @@ public void loadXML(Node stepnode, List databases, clientId = XMLHandler.getTagValue(stepnode, "CLIENT_ID"); timeout = XMLHandler.getTagValue(stepnode, "TIMEOUT"); qos = XMLHandler.getTagValue(stepnode, "QOS"); + requiresAuth = Boolean.parseBoolean(XMLHandler.getTagValue( + stepnode, "REQUIRES_AUTH")); + if (requiresAuth) { + username = XMLHandler.getTagValue(stepnode, "USERNAME"); + password = XMLHandler.getTagValue(stepnode, "PASSWORD"); + } + Node sslNode = XMLHandler.getSubNode(stepnode, "SSL"); + if (sslNode != null) { + sslCaFile = XMLHandler.getTagValue(sslNode, "CA_FILE"); + sslCertFile = XMLHandler.getTagValue(sslNode, "CERT_FILE"); + sslKeyFile = XMLHandler.getTagValue(sslNode, "KEY_FILE"); + sslKeyFilePass = XMLHandler.getTagValue(sslNode, + "KEY_FILE_PASS"); + } } catch (Exception e) { throw new KettleXMLException( Messages.getString("MQTTClientMeta.Exception.loadXml"), e); @@ -216,6 +357,46 @@ public String getXML() throws KettleException { if (qos != null) { retval.append(" ").append(XMLHandler.addTagValue("QOS", qos)); } + + retval.append(" ").append( + XMLHandler.addTagValue("REQUIRES_AUTH", + Boolean.toString(requiresAuth))); + if (requiresAuth) { + if (username != null) { + retval.append(" ").append( + XMLHandler.addTagValue("USERNAME", username)); + } + if (password != null) { + retval.append(" ").append( + XMLHandler.addTagValue("PASSWORD", password)); + } + } + + if (sslCaFile != null || sslCertFile != null || sslKeyFile != null + || sslKeyFilePass != null) { + retval.append(" ").append(XMLHandler.openTag("SSL")) + .append(Const.CR); + if (sslCaFile != null) { + retval.append(" " + + XMLHandler.addTagValue("CA_FILE", sslCaFile)); + } + if (sslCertFile != null) { + retval.append(" " + + XMLHandler.addTagValue("CERT_FILE", sslCertFile)); + } + if (sslKeyFile != null) { + retval.append(" " + + XMLHandler.addTagValue("KEY_FILE", sslKeyFile)); + } + if (sslKeyFilePass != null) { + retval.append(" " + + XMLHandler.addTagValue("KEY_FILE_PASS", + sslKeyFilePass)); + } + retval.append(" ").append(XMLHandler.closeTag("SSL")) + .append(Const.CR); + } + return retval.toString(); } @@ -229,6 +410,17 @@ public void readRep(Repository rep, ObjectId stepId, clientId = rep.getStepAttributeString(stepId, "CLIENT_ID"); timeout = rep.getStepAttributeString(stepId, "TIMEOUT"); qos = rep.getStepAttributeString(stepId, "QOS"); + requiresAuth = Boolean.parseBoolean(rep.getStepAttributeString( + stepId, "REQUIRES_AUTH")); + if (requiresAuth) { + username = rep.getStepAttributeString(stepId, "USERNAME"); + password = rep.getStepAttributeString(stepId, "PASSWORD"); + } + sslCaFile = rep.getStepAttributeString(stepId, "SSL_CA_FILE"); + sslCertFile = rep.getStepAttributeString(stepId, "SSL_CERT_FILE"); + sslKeyFile = rep.getStepAttributeString(stepId, "SSL_KEY_FILE"); + sslKeyFilePass = rep.getStepAttributeString(stepId, + "SSL_KEY_FILE_PASS"); } catch (Exception e) { throw new KettleException("MQTTClientMeta.Exception.loadRep", e); } @@ -258,6 +450,35 @@ public void saveRep(Repository rep, ObjectId transformationId, if (qos != null) { rep.saveStepAttribute(transformationId, stepId, "QOS", qos); } + rep.saveStepAttribute(transformationId, stepId, "REQUIRES_AUTH", + Boolean.toString(requiresAuth)); + if (requiresAuth) { + if (username != null) { + rep.saveStepAttribute(transformationId, stepId, "USERNAME", + username); + } + if (password != null) { + rep.saveStepAttribute(transformationId, stepId, "USERNAME", + password); + } + } + + if (sslCaFile != null) { + rep.saveStepAttribute(transformationId, stepId, "SSL_CA_FILE", + sslCaFile); + } + if (sslCertFile != null) { + rep.saveStepAttribute(transformationId, stepId, + "SSL_CERT_FILE", sslCertFile); + } + if (sslKeyFile != null) { + rep.saveStepAttribute(transformationId, stepId, "SSL_KEY_FILE", + sslKeyFile); + } + if (sslKeyFilePass != null) { + rep.saveStepAttribute(transformationId, stepId, + "SSL_KEY_FILE_PASS", sslKeyFilePass); + } } catch (Exception e) { throw new KettleException("MQTTClientMeta.Exception.saveRep", e); } diff --git a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerStep.java b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerStep.java index a11fe5a..a545163 100644 --- a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerStep.java +++ b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/MQTTProducerStep.java @@ -71,6 +71,25 @@ public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) data.client = new MqttClient(broker, clientId); MqttConnectOptions connectOptions = new MqttConnectOptions(); + if (meta.isRequiresAuth()) { + connectOptions.setUserName(environmentSubstitute(meta + .getUsername())); + connectOptions.setPassword(environmentSubstitute( + meta.getPassword()).toCharArray()); + } + if (broker.startsWith("ssl:")) { + connectOptions + .setSocketFactory(SSLSocketFactoryGenerator + .getSocketFactory( + environmentSubstitute(meta + .getSSLCaFile()), + environmentSubstitute(meta + .getSSLCertFile()), + environmentSubstitute(meta + .getSSLKeyFile()), + environmentSubstitute(meta + .getSSLKeyFilePass()))); + } connectOptions.setCleanSession(true); String timeout = environmentSubstitute(meta.getTimeout()); @@ -88,7 +107,7 @@ public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) clientId)); data.client.connect(connectOptions); - } catch (MqttException e) { + } catch (Exception e) { throw new KettleException(Messages.getString( "MQTTClientStep.ErrorCreateMQTTClient.Message", broker), e); diff --git a/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/SSLSocketFactoryGenerator.java b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/SSLSocketFactoryGenerator.java new file mode 100644 index 0000000..4df2e76 --- /dev/null +++ b/src/main/java/com/ruckuswireless/pentaho/mqtt/producer/SSLSocketFactoryGenerator.java @@ -0,0 +1,88 @@ +package com.ruckuswireless.pentaho.mqtt.producer; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileReader; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.security.KeyPair; +import java.security.KeyStore; +import java.security.Security; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; + +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManagerFactory; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.openssl.PEMDecryptorProvider; +import org.bouncycastle.openssl.PEMEncryptedKeyPair; +import org.bouncycastle.openssl.PEMKeyPair; +import org.bouncycastle.openssl.PEMParser; +import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; +import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder; + +public class SSLSocketFactoryGenerator { + + public static SSLSocketFactory getSocketFactory(String caCrtFile, + String crtFile, String keyFile, String password) throws Exception { + + char[] passwordCharArray = password == null ? new char[0] : password + .toCharArray(); + + Security.addProvider(new BouncyCastleProvider()); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + + X509Certificate caCert = (X509Certificate) cf + .generateCertificate(new ByteArrayInputStream(Files + .readAllBytes(Paths.get(caCrtFile)))); + + X509Certificate cert = (X509Certificate) cf + .generateCertificate(new ByteArrayInputStream(Files + .readAllBytes(Paths.get(crtFile)))); + + File privateKeyFile = new File(keyFile); + PEMParser pemParser = new PEMParser(new FileReader(privateKeyFile)); + PEMDecryptorProvider decProv = new JcePEMDecryptorProviderBuilder() + .build(passwordCharArray); + JcaPEMKeyConverter converter = new JcaPEMKeyConverter() + .setProvider("BC"); + + Object object = pemParser.readObject(); + KeyPair kp; + + if (object instanceof PEMEncryptedKeyPair) { + kp = converter.getKeyPair(((PEMEncryptedKeyPair) object) + .decryptKeyPair(decProv)); + } else { + kp = converter.getKeyPair((PEMKeyPair) object); + } + + pemParser.close(); + + KeyStore caKeyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + caKeyStore.load(null, null); + caKeyStore.setCertificateEntry("ca-certificate", caCert); + TrustManagerFactory trustManagerFactory = TrustManagerFactory + .getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(caKeyStore); + + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + keyStore.load(null, null); + keyStore.setCertificateEntry("certificate", cert); + keyStore.setKeyEntry("private-key", kp.getPrivate(), passwordCharArray, + new java.security.cert.Certificate[] { cert }); + KeyManagerFactory keyManagerFactory = KeyManagerFactory + .getInstance(KeyManagerFactory.getDefaultAlgorithm()); + keyManagerFactory.init(keyStore, passwordCharArray); + + SSLContext context = SSLContext.getInstance("TLSv1"); + context.init(keyManagerFactory.getKeyManagers(), + trustManagerFactory.getTrustManagers(), null); + + return context.getSocketFactory(); + + } +} \ No newline at end of file diff --git a/src/main/resources/com/ruckuswireless/pentaho/mqtt/producer/messages/messages_en_US.properties b/src/main/resources/com/ruckuswireless/pentaho/mqtt/producer/messages/messages_en_US.properties index 4959bed..fd0ffbb 100644 --- a/src/main/resources/com/ruckuswireless/pentaho/mqtt/producer/messages/messages_en_US.properties +++ b/src/main/resources/com/ruckuswireless/pentaho/mqtt/producer/messages/messages_en_US.properties @@ -18,12 +18,31 @@ MQTTClientMeta.Check.InvalidField=Field name must be set\! MQTTClientMeta.Check.InvalidClientID=Client ID must be set\! MQTTClientMeta.Check.InvalidConnectionTimeout=Connection timeout must be set\! MQTTClientMeta.Check.InvalidQOS=QoS must be set\! +MQTTClientMeta.Check.InvalidUsername=Username must be set\! +MQTTClientMeta.Check.InvalidPassword=Password must be set\! MQTTClientDialog.Shell.Title=MQTT Client MQTTClientDialog.StepName.Label=Step name +MQTTClientDialog.GeneralTab.Label=General MQTTClientDialog.Broker.Label=Broker URL MQTTClientDialog.TopicName.Label=Topic name MQTTClientDialog.FieldName.Label=Input field name +MQTTClientDialog.FieldName.Tooltip=Name of the field containing the message to be sent over MQTT MQTTClientDialog.ClientID.Label=Client ID +MQTTClientDialog.RequireAuth.Label=Server requires authorization +MQTTClientDialog.Username.Label=Username +MQTTClientDialog.Username.Tooltip=Username for connecting to MQTT bridge +MQTTClientDialog.Password.Label=Password +MQTTClientDialog.Password.Tooltip=Password for connecting to MQTT bridge +MQTTClientDialog.CredentialsTab.Title=Credentials MQTTClientDialog.ConnectionTimeout.Label=Connection timeout MQTTClientDialog.QOS.Label=QoS +MQTTClientDialog.SSLTab.Label=SSL +MQTTClientDialog.CAFile.Label=CA file path +MQTTClientDialog.CAFile.Tooltip=Please specify path to the server CA file +MQTTClientDialog.CertFile.Label=Certificate file path +MQTTClientDialog.CertFile.Tooltip=Please specify path to the client certificate file +MQTTClientDialog.KeyFile.Label=Key file path +MQTTClientDialog.KeyFile.Tooltip=Please specify path to the client key file +MQTTClientDialog.KeyPassword.Label=Key file password +MQTTClientDialog.KeyPassword.Tooltip=Please specify client key file password if any MQTTClientDialog.ErrorDialog.UnableToGetInputFields=Unable to get input fields for this step\! \ No newline at end of file diff --git a/src/main/resources/plugin.xml b/src/main/resources/plugin.xml index 61a6acb..cfa6b59 100644 --- a/src/main/resources/plugin.xml +++ b/src/main/resources/plugin.xml @@ -10,6 +10,8 @@ + +