Skip to content
Snippets Groups Projects
Commit 1e85a74a authored by felmer's avatar felmer
Browse files

store passwords in encrypted form

SVN: 15849
parent 9d6ebbaa
No related branches found
No related tags found
No related merge requests found
...@@ -137,7 +137,7 @@ public class QueryNodeDialog extends NodeDialogPane ...@@ -137,7 +137,7 @@ public class QueryNodeDialog extends NodeDialogPane
{ {
urlField.setText(settings.getString(URL_KEY, "")); urlField.setText(settings.getString(URL_KEY, ""));
userField.setText(settings.getString(USER_KEY, "")); userField.setText(settings.getString(USER_KEY, ""));
passwordField.setText(settings.getString(PASSWORD_KEY, "")); passwordField.setText(Util.getDecryptedPassword(settings));
byte[] bytes = settings.getByteArray(QUERY_DESCRIPTION_KEY, null); byte[] bytes = settings.getByteArray(QUERY_DESCRIPTION_KEY, null);
QueryDescription queryDescriptionOrNull = Util.deserializeQueryDescription(bytes); QueryDescription queryDescriptionOrNull = Util.deserializeQueryDescription(bytes);
parameterBindings.loadValidatedSettingsFrom(settings); parameterBindings.loadValidatedSettingsFrom(settings);
...@@ -153,7 +153,7 @@ public class QueryNodeDialog extends NodeDialogPane ...@@ -153,7 +153,7 @@ public class QueryNodeDialog extends NodeDialogPane
{ {
settings.addString(URL_KEY, urlField.getText().trim()); settings.addString(URL_KEY, urlField.getText().trim());
settings.addString(USER_KEY, userField.getText().trim()); settings.addString(USER_KEY, userField.getText().trim());
settings.addString(PASSWORD_KEY, passwordField.getText().trim()); settings.addString(PASSWORD_KEY, Util.getEncryptedPassword(passwordField.getPassword()));
byte[] bytes = Util.serializeQueryDescription(getSelectedQueryDescriptionOrNull()); byte[] bytes = Util.serializeQueryDescription(getSelectedQueryDescriptionOrNull());
settings.addByteArray(QUERY_DESCRIPTION_KEY, bytes); settings.addByteArray(QUERY_DESCRIPTION_KEY, bytes);
parameterBindings.removeAllBindings(); parameterBindings.removeAllBindings();
......
...@@ -83,7 +83,7 @@ public class QueryNodeModel extends NodeModel ...@@ -83,7 +83,7 @@ public class QueryNodeModel extends NodeModel
{ {
url = settings.getString(URL_KEY); url = settings.getString(URL_KEY);
userID = settings.getString(USER_KEY); userID = settings.getString(USER_KEY);
password = settings.getString(PASSWORD_KEY); password = Util.getDecryptedPassword(settings);
queryDescription = Util.deserializeQueryDescription(settings.getByteArray(QUERY_DESCRIPTION_KEY)); queryDescription = Util.deserializeQueryDescription(settings.getByteArray(QUERY_DESCRIPTION_KEY));
parameterBindings.loadValidatedSettingsFrom(settings); parameterBindings.loadValidatedSettingsFrom(settings);
} }
...@@ -93,7 +93,7 @@ public class QueryNodeModel extends NodeModel ...@@ -93,7 +93,7 @@ public class QueryNodeModel extends NodeModel
{ {
settings.addString(URL_KEY, url); settings.addString(URL_KEY, url);
settings.addString(USER_KEY, userID); settings.addString(USER_KEY, userID);
settings.addString(PASSWORD_KEY, password); settings.addString(PASSWORD_KEY, Util.getEncryptedPassword(password.toCharArray()));
settings.addByteArray(QUERY_DESCRIPTION_KEY, Util settings.addByteArray(QUERY_DESCRIPTION_KEY, Util
.serializeQueryDescription(queryDescription)); .serializeQueryDescription(queryDescription));
parameterBindings.saveSettingsTo(settings); parameterBindings.saveSettingsTo(settings);
......
...@@ -16,12 +16,18 @@ ...@@ -16,12 +16,18 @@
package ch.systemsx.cisd.openbis.knime.query; package ch.systemsx.cisd.openbis.knime.query;
import static ch.systemsx.cisd.openbis.knime.query.QueryNodeModel.PASSWORD_KEY;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; import java.io.ObjectOutputStream;
import org.knime.core.node.NodeSettingsRO;
import org.knime.core.util.KnimeEncryption;
import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryDescription; import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryDescription;
import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableColumnDataType; import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableColumnDataType;
...@@ -74,4 +80,26 @@ class Util ...@@ -74,4 +80,26 @@ class Util
default: return ColumnType.STRING; default: return ColumnType.STRING;
} }
} }
static String getDecryptedPassword(NodeSettingsRO settings)
{
try
{
return KnimeEncryption.decrypt(settings.getString(PASSWORD_KEY, ""));
} catch (Exception ex)
{
throw CheckedExceptionTunnel.wrapIfNecessary(ex);
}
}
static String getEncryptedPassword(char[] bytes)
{
try
{
return KnimeEncryption.encrypt(bytes);
} catch (Exception ex)
{
throw CheckedExceptionTunnel.wrapIfNecessary(ex);
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment