Author: kwright
Date: Thu Jun 27 15:59:02 2013
New Revision: 1497409

URL: http://svn.apache.org/r1497409
Log:
Establish canonical way of keeping passwords out of HTML, using the GoogleDrive 
connector as an example.  Part of CONNECTORS-737.

Modified:
    
manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java
    
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/connector/BaseConnector.java

Modified: 
manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java?rev=1497409&r1=1497408&r2=1497409&view=diff
==============================================================================
--- 
manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java
 (original)
+++ 
manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java
 Thu Jun 27 15:59:02 2013
@@ -420,8 +420,12 @@ public class GoogleDriveRepositoryConnec
       clientid = StringUtils.EMPTY;
     }
     
+    // Client password is secret, so don't put it unchanged into the form data.
     if (clientsecret == null) {
       clientsecret = StringUtils.EMPTY;
+    } else {
+      if (clientsecret.length() != 0)
+        clientsecret = EXISTING_VALUE_PASSWORD;
     }
 
     if (refreshtoken == null) {
@@ -532,7 +536,9 @@ public class GoogleDriveRepositoryConnec
 
     String clientsecret = 
variableContext.getParameter(GoogleDriveConfig.CLIENT_SECRET_PARAM);
     if (clientsecret != null) {
-      parameters.setObfuscatedParameter(GoogleDriveConfig.CLIENT_SECRET_PARAM, 
clientsecret);
+      // Only set the password if it has been changed
+      if (!clientsecret.equals(EXISTING_VALUE_PASSWORD))
+        
parameters.setObfuscatedParameter(GoogleDriveConfig.CLIENT_SECRET_PARAM, 
clientsecret);
     }
 
     String refreshtoken = 
variableContext.getParameter(GoogleDriveConfig.REFRESH_TOKEN_PARAM);

Modified: 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/connector/BaseConnector.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/connector/BaseConnector.java?rev=1497409&r1=1497408&r2=1497409&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/connector/BaseConnector.java
 (original)
+++ 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/connector/BaseConnector.java
 Thu Jun 27 15:59:02 2013
@@ -28,6 +28,12 @@ public abstract class BaseConnector impl
 {
   public static final String _rcsid = "@(#)$Id: BaseConnector.java 988245 
2010-08-23 18:39:35Z kwright $";
 
+  /** This is a special password value that is used as a placeholder, so the 
real
+  * password does not appear in HTML at any point in the crawler UI.  
Effectively,
+  * a password with this value means "existing value".
+  */
+  protected static final String EXISTING_VALUE_PASSWORD = 
"\u0512\u0512\u0512\u0512\u0512\u0512\u0512\u0512";
+
   // Config params
   protected ConfigParams params = null;
 


Reply via email to