[mapguide-commits] r7014 - trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Thu Sep 13 10:05:53 PDT 2012
Author: jng
Date: 2012-09-13 10:05:53 -0700 (Thu, 13 Sep 2012)
New Revision: 7014
Modified:
trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs
Log:
#2113: When opening a RDBMS feature source, fill in a fake password to give the appearance of one already being filled in. It is not possible from a security standpoint to request decrypted Feature Source passwords.
Modified: trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs 2012-09-13 16:42:05 UTC (rev 7013)
+++ trunk/Tools/Maestro/Maestro.Editors/FeatureSource/Providers/Rdbms/RdbmsBaseCtrl.cs 2012-09-13 17:05:53 UTC (rev 7014)
@@ -55,8 +55,13 @@
private IEditorService _service;
private IFeatureSource _fs;
+ private bool _bChangedUsername = false;
+ private bool _bChangedPassword = false;
+
public override void Bind(IEditorService service)
{
+ _bChangedUsername = false;
+ _bChangedPassword = false;
_service = service;
_service.BeforeSave += OnBeforeSave;
_service.BeforePreview += OnBeforePreview;
@@ -71,8 +76,7 @@
if (!_service.IsNew)
{
txtUsername.Text = _fs.GetEncryptedUsername() ?? _fs.GetConnectionProperty("Username"); //NOXLATE
- //txtPassword.Text = _fs.GetConnectionProperty("Password");
- OnResourceChanged();
+ txtPassword.Text = GenerateRandomFakeString();
}
//Set initial value of data store if possible
@@ -88,6 +92,7 @@
txtUsername.TextChanged += (s, e) =>
{
+ _bChangedUsername = true;
if (string.IsNullOrEmpty(txtUsername.Text))
_fs.SetConnectionProperty("Username", null); //NOXLATE
else
@@ -96,6 +101,7 @@
txtPassword.TextChanged += (s, e) =>
{
+ _bChangedPassword = true;
if (string.IsNullOrEmpty(txtPassword.Text))
_fs.SetConnectionProperty("Password", null); //NOXLATE
else
@@ -109,6 +115,23 @@
}
+ private string GenerateRandomFakeString()
+ {
+ Random rng = new Random();
+ char[] letters = new char[rng.Next(6, 12)];
+ for (int i = 0; i < letters.Length; i++)
+ {
+ letters[i] = GenerateChar(rng);
+ }
+ return new string(letters);
+ }
+
+ private static char GenerateChar(Random rng)
+ {
+ // 'Z' + 1 because the range is exclusive
+ return (char)(rng.Next('A', 'Z' + 1));
+ }
+
void OnBeforePreview(object sender, EventArgs e)
{
WriteEncryptedCredentials();
@@ -128,10 +151,13 @@
{
if (username != StringConstants.MgUsernamePlaceholder && password != StringConstants.MgPasswordPlaceholder)
{
- _fs.SetConnectionProperty("Username", StringConstants.MgUsernamePlaceholder); //NOXLATE
- _fs.SetConnectionProperty("Password", StringConstants.MgPasswordPlaceholder); //NOXLATE
- _fs.SetEncryptedCredentials(username, password);
- _service.SyncSessionCopy();
+ if (_bChangedUsername || _bChangedPassword)
+ {
+ _fs.SetConnectionProperty("Username", StringConstants.MgUsernamePlaceholder); //NOXLATE
+ _fs.SetConnectionProperty("Password", StringConstants.MgPasswordPlaceholder); //NOXLATE
+ _fs.SetEncryptedCredentials(username, password);
+ _service.SyncSessionCopy();
+ }
}
}
else if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
More information about the mapguide-commits
mailing list