Support encrypted SharePoint passwords
diff --git a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
index 3c54fe7..cd4842a 100644
--- a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
+++ b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
@@ -186,7 +186,8 @@
     Config config = context.getConfig();
     virtualServer = config.getValue("sharepoint.server");
     String username = config.getValue("sharepoint.username");
-    String password = config.getValue("sharepoint.password");
+    String password = context.getSensitiveValueDecoder().decodeValue(
+        config.getValue("sharepoint.password"));
 
     log.log(Level.CONFIG, "VirtualServer: {0}", virtualServer);
     log.log(Level.CONFIG, "Username: {0}", username);
diff --git a/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java b/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java
index 9ebccd0..42d54e1 100644
--- a/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java
+++ b/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java
@@ -45,6 +45,13 @@
   };
   private final Config config;
   private final DocIdPusher pusher;
+  private final SensitiveValueDecoder sensitiveValueDecoder
+      = new SensitiveValueDecoder() {
+    @Override
+    public String decodeValue(String nonReadable) {
+      return nonReadable;
+    }
+  };
 
   public MockAdaptorContext(Config config, DocIdPusher pusher) {
     if (config == null) {
@@ -85,7 +92,7 @@
 
   @Override
   public SensitiveValueDecoder getSensitiveValueDecoder() {
-    throw new UnsupportedOperationException();
+    return sensitiveValueDecoder;
   }
 
   @Override