You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2019/07/18 20:30:50 UTC

svn commit: r1863338 - in /manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf: authorities/authorities/csws/CswsAuthority.java crawler/connectors/csws/CswsConnector.java csws/CswsSession.java

Author: kwright
Date: Thu Jul 18 20:30:49 2019
New Revision: 1863338

URL: http://svn.apache.org/viewvc?rev=1863338&view=rev
Log:
Add first cut of SSL support.

Modified:
    manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/csws/CswsAuthority.java
    manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java
    manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/csws/CswsSession.java

Modified: manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/csws/CswsAuthority.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/csws/CswsAuthority.java?rev=1863338&r1=1863337&r2=1863338&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/csws/CswsAuthority.java (original)
+++ manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/csws/CswsAuthority.java Thu Jul 18 20:30:49 2019
@@ -25,6 +25,7 @@ import org.apache.manifoldcf.authorities
 import org.apache.manifoldcf.authorities.system.ManifoldCF;
 
 import org.apache.manifoldcf.connectorcommon.interfaces.*;
+import org.apache.manifoldcf.connectorcommon.common.InterruptibleSocketFactory;
 
 import com.opentext.livelink.service.memberservice.User;
 import com.opentext.livelink.service.memberservice.Member;
@@ -223,9 +224,21 @@ public class CswsAuthority extends org.a
       {
         Logging.authorityConnectors.debug("Csws: Csws session created.");
       }
-          
+
+      final int connectionTimeout = 15 * 1000;
+      
+      final javax.net.ssl.SSLSocketFactory mySslFactory;
+      if (serverHTTPSKeystore != null)
+      {
+        mySslFactory = new InterruptibleSocketFactory(serverHTTPSKeystore.getSecureSocketFactory(), connectionTimeout);
+      }
+      else
+      {
+        mySslFactory = null;
+      }
+
       // Construct a new csws session object for setting up this session
-      cswsSession = new CswsSession(serverUsername, serverPassword, 1000L * 60L * 15L,
+      cswsSession = new CswsSession(serverUsername, serverPassword, mySslFactory, 1000L * 60L * 15L,
         authenticationServiceURL, null, null, memberServiceServiceURL, null);
 
     }

Modified: manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java?rev=1863338&r1=1863337&r2=1863338&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java (original)
+++ manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java Thu Jul 18 20:30:49 2019
@@ -458,14 +458,16 @@ public class CswsConnector extends org.a
       int connectionTimeout = 300000;
 
       // Set up ingest ssl if indicated
-      SSLConnectionSocketFactory myFactory = null;
+      final SSLConnectionSocketFactory myFactory;
+      final javax.net.ssl.SSLSocketFactory mySslFactory;
       if (serverHTTPSKeystore != null)
       {
-        myFactory = new SSLConnectionSocketFactory(new InterruptibleSocketFactory(serverHTTPSKeystore.getSecureSocketFactory(), connectionTimeout),
-          NoopHostnameVerifier.INSTANCE);
+        mySslFactory = new InterruptibleSocketFactory(serverHTTPSKeystore.getSecureSocketFactory(), connectionTimeout);
+        myFactory = new SSLConnectionSocketFactory(mySslFactory, NoopHostnameVerifier.INSTANCE);
       }
       else
       {
+        mySslFactory = null;
         myFactory = SSLConnectionSocketFactory.getSocketFactory();
       }
 
@@ -523,7 +525,7 @@ public class CswsConnector extends org.a
       }
 
       // Construct a new csws session object for setting up this session
-      cswsSession = new CswsSession(serverUsername, serverPassword, 1000L * 60L * 15L, 
+      cswsSession = new CswsSession(serverUsername, serverPassword, mySslFactory, 1000L * 60L * 15L, 
         authenticationServiceURL, documentManagementServiceURL, contentServiceServiceURL, memberServiceServiceURL, searchServiceServiceURL);
 
       final GetSessionThread t = new GetSessionThread();

Modified: manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/csws/CswsSession.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/csws/CswsSession.java?rev=1863338&r1=1863337&r2=1863338&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/csws/CswsSession.java (original)
+++ manifoldcf/branches/CONNECTORS-1566/connectors/csws/connector/src/main/java/org/apache/manifoldcf/csws/CswsSession.java Thu Jul 18 20:30:49 2019
@@ -80,6 +80,7 @@ import com.opentext.livelink.service.mem
 
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
 import org.apache.manifoldcf.agents.interfaces.ServiceInterruption;
+import org.apache.manifoldcf.connectorcommon.interfaces.*;
 
 /** This class describes a livelink csws session.  It manages OAuth authentication
 * and provides logged-in access to csws services via methods provided within.
@@ -115,12 +116,15 @@ public class CswsSession
   // Cached workspace root nodes
   private Map<String, Node> workspaceTypeNodes = new HashMap<>();
   
+  private final static String sslSocketFactoryProperty = "com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory";
+  
   // Transient data that will need to be periodically rebuilt
   private long currentSessionExpiration = -1L;
   private String currentAuthToken = null;
   
   public CswsSession(final String userName,
-    final String password, 
+    final String password,
+    final javax.net.ssl.SSLSocketFactory sslSocketFactory,
     final long sessionExpirationInterval,
     final String authenticationServiceURL,
     final String documentManagementServiceURL,
@@ -158,6 +162,15 @@ public class CswsSession
     ((BindingProvider)contentServiceHandle).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, contentServiceServiceURL);
     ((BindingProvider)memberServiceHandle).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, memberServiceServiceURL);
     ((BindingProvider)searchServiceHandle).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, searchServiceServiceURL);
+    
+    // Set SSLSocketFactory's
+    if (sslSocketFactory != null) {
+      ((BindingProvider)authClientHandle).getRequestContext().put(sslSocketFactoryProperty, sslSocketFactory);
+      ((BindingProvider)documentManagementHandle).getRequestContext().put(sslSocketFactoryProperty, sslSocketFactory);
+      ((BindingProvider)contentServiceHandle).getRequestContext().put(sslSocketFactoryProperty, sslSocketFactory);
+      ((BindingProvider)memberServiceHandle).getRequestContext().put(sslSocketFactoryProperty, sslSocketFactory);
+      ((BindingProvider)searchServiceHandle).getRequestContext().put(sslSocketFactoryProperty, sslSocketFactory);
+    }
   }
 
   /**