JAL-3633 Memory only proxy auth password storage. Open Preferences->Connection tab...
[jalview.git] / src / jalview / gui / Preferences.java
index 827c9a0..3cada85 100755 (executable)
@@ -193,7 +193,12 @@ public class Preferences extends GPreferences
    */
   public Preferences()
   {
-    super();
+    new Preferences(0);
+  }
+
+  public Preferences(int selectTab)
+  {
+    super(selectTab);
     frame = new JInternalFrame();
     frame.setContentPane(this);
     if (!Platform.isJS())
@@ -563,8 +568,9 @@ public class Preferences extends GPreferences
     proxyAuth.setSelected(Cache.getDefault("PROXY_AUTH", false));
     proxyAuthUsernameTB
             .setText(Cache.getDefault("PROXY_AUTH_USERNAME", ""));
-    proxyAuthPasswordTB
-            .setText(Cache.getDefault("PROXY_AUTH_PASSWORD", ""));
+    // we are not storing or retrieving proxy password from .jalview_properties
+    proxyAuthPasswordTB.setText(Cache.proxyAuthPassword == null ? ""
+            : Cache.proxyAuthPassword.toString());
     setCustomProxyEnabled();
 
     defaultBrowser.setText(Cache.getDefault("DEFAULT_BROWSER", ""));
@@ -838,19 +844,7 @@ public class Preferences extends GPreferences
             sequenceUrlLinks.getPrimaryUrlId());
 
     // Proxy settings
-    Cache.applicationProperties.setProperty("USE_PROXY",
-            customProxy.isSelected() ? Cache.PROXYTYPE_CUSTOM
-                    : noProxy.isSelected() ? Cache.PROXYTYPE_NONE
-                            : Cache.PROXYTYPE_SYSTEM);
-    Cache.setOrRemove("PROXY_SERVER", proxyServerHttpTB.getText());
-    Cache.setOrRemove("PROXY_PORT", proxyPortHttpTB.getText());
-    Cache.setOrRemove("PROXY_SERVER_HTTPS", proxyServerHttpsTB.getText());
-    Cache.setOrRemove("PROXY_PORT_HTTPS", proxyPortHttpsTB.getText());
-    Cache.setOrRemove("PROXY_AUTH",
-            Boolean.toString(proxyAuth.isSelected()));
-    Cache.setOrRemove("PROXY_AUTH_USERNAME", proxyAuthUsernameTB.getText());
-    Cache.setOrRemove("PROXY_AUTH_PASSWORD", proxyAuthPasswordTB.getText());
-    setProxyFromSettings();
+    saveProxySettings();
 
     Cache.setProperty("VERSION_CHECK",
             Boolean.toString(versioncheck.isSelected()));
@@ -957,7 +951,7 @@ public class Preferences extends GPreferences
       if (!previousProxyType.equals(proxyType))
         Cache.log.info("Setting no proxy settings");
       Cache.setProxyProperties(null, null, null, null, null, null, null,
-              null);
+              null, null);
     }
     else if (proxyType.equals(Cache.PROXYTYPE_CUSTOM))
     {
@@ -970,8 +964,10 @@ public class Preferences extends GPreferences
               Cache.getDefault("PROXY_PORT_HTTPS", null),
               proxyAuthSet ? Cache.getDefault("PROXY_AUTH_USERNAME", "")
                       : null,
-              proxyAuthSet ? Cache.getDefault("PROXY_AUTH_PASSWORD", "")
-                      : null);
+              proxyAuthSet ? Cache.proxyAuthPassword : null,
+              proxyAuthSet ? Cache.getDefault("PROXY_AUTH_USERNAME", "")
+                      : null,
+              proxyAuthSet ? Cache.proxyAuthPassword : null, "localhost");
     }
     else // systemProxy should be selected and is sensible default anyway
     {
@@ -981,6 +977,23 @@ public class Preferences extends GPreferences
     }
   }
 
+  public void saveProxySettings()
+  {
+    Cache.applicationProperties.setProperty("USE_PROXY",
+            customProxy.isSelected() ? Cache.PROXYTYPE_CUSTOM
+                    : noProxy.isSelected() ? Cache.PROXYTYPE_NONE
+                            : Cache.PROXYTYPE_SYSTEM);
+    Cache.setOrRemove("PROXY_SERVER", proxyServerHttpTB.getText());
+    Cache.setOrRemove("PROXY_PORT", proxyPortHttpTB.getText());
+    Cache.setOrRemove("PROXY_SERVER_HTTPS", proxyServerHttpsTB.getText());
+    Cache.setOrRemove("PROXY_PORT_HTTPS", proxyPortHttpsTB.getText());
+    Cache.setOrRemove("PROXY_AUTH",
+            Boolean.toString(proxyAuth.isSelected()));
+    Cache.setOrRemove("PROXY_AUTH_USERNAME", proxyAuthUsernameTB.getText());
+    Cache.proxyAuthPassword = proxyAuthPasswordTB.getPassword();
+    setProxyFromSettings();
+  }
+
   /**
    * Do any necessary validation before saving settings. Return focus to the
    * first tab which fails validation.