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 2011/02/16 16:42:47 UTC
svn commit: r1071291 - in
/incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr:
HttpPoster.java SolrConnector.java
Author: kwright
Date: Wed Feb 16 15:42:47 2011
New Revision: 1071291
URL: http://svn.apache.org/viewvc?rev=1071291&view=rev
Log:
Add support for ssl sockets, based on the keystore parameter.
Modified:
incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java
Modified: incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java?rev=1071291&r1=1071290&r2=1071291&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java (original)
+++ incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java Wed Feb 16 15:42:47 2011
@@ -57,6 +57,7 @@ public class HttpPoster
private String protocol;
private String host;
+ private javax.net.ssl.SSLSocketFactory socketFactory;
private int port;
private String encodedCredentials;
private String realm;
@@ -104,12 +105,12 @@ public class HttpPoster
/** This is the secure socket factory we will use. I'm presuming it's thread-safe, but
* if not, synchronization blocks are in order when it's used. */
- protected static javax.net.ssl.SSLSocketFactory secureSocketFactory = null;
+ protected static javax.net.ssl.SSLSocketFactory openSecureSocketFactory = null;
static
{
try
{
- secureSocketFactory = getSecureSocketFactory();
+ openSecureSocketFactory = getOpenSecureSocketFactory();
}
catch (ManifoldCFException e)
{
@@ -127,7 +128,8 @@ public class HttpPoster
public HttpPoster(String protocol, String server, int port, String webappName,
String updatePath, String removePath, String statusPath,
String realm, String userID, String password,
- String allowAttributeName, String denyAttributeName, String idAttributeName)
+ String allowAttributeName, String denyAttributeName, String idAttributeName,
+ IKeystoreManager keystoreManager)
throws ManifoldCFException
{
this.allowAttributeName = allowAttributeName;
@@ -137,6 +139,11 @@ public class HttpPoster
this.host = server;
this.port = port;
this.protocol = protocol;
+ if (keystoreManager != null)
+ this.socketFactory = keystoreManager.getSecureSocketFactory();
+ else
+ // Use the "trust everything" one.
+ this.socketFactory = openSecureSocketFactory;
if (userID != null && userID.length() > 0 && password != null)
{
@@ -685,7 +692,7 @@ public class HttpPoster
/** Build a secure socket factory based on no keystore and a lax trust manager.
* This allows use of SSL for privacy but not identification. */
- protected static javax.net.ssl.SSLSocketFactory getSecureSocketFactory()
+ protected static javax.net.ssl.SSLSocketFactory getOpenSecureSocketFactory()
throws ManifoldCFException
{
try
@@ -713,12 +720,12 @@ public class HttpPoster
throws IOException, ManifoldCFException
{
Socket socket;
- if (protocol.equals("https"))
+ if (protocol.equals("https") && socketFactory != null)
{
try
{
- SocketFactory factory = SSLSocketFactory.getDefault();
- socket = factory.createSocket(host,port);
+ //SocketFactory factory = SSLSocketFactory.getDefault();
+ socket = socketFactory.createSocket(host,port);
}
catch (InterruptedIOException e)
{
Modified: incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java
URL: http://svn.apache.org/viewvc/incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java?rev=1071291&r1=1071290&r2=1071291&view=diff
==============================================================================
--- incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java (original)
+++ incubator/lcf/branches/CONNECTORS-160-branch/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java Wed Feb 16 15:42:47 2011
@@ -141,6 +141,12 @@ public class SolrConnector extends org.a
String userID = params.getParameter(SolrConfig.PARAM_USERID);
String password = params.getObfuscatedParameter(SolrConfig.PARAM_PASSWORD);
String realm = params.getParameter(SolrConfig.PARAM_REALM);
+ String keystoreData = params.getParameter(SolrConfig.PARAM_KEYSTORE);
+ IKeystoreManager keystoreManager;
+ if (keystoreData != null)
+ keystoreManager = KeystoreManagerFactory.make("",keystoreData);
+ else
+ keystoreManager = null;
if (core != null)
{
@@ -152,7 +158,7 @@ public class SolrConnector extends org.a
try
{
poster = new HttpPoster(protocol,server,Integer.parseInt(port),webapp,updatePath,removePath,statusPath,realm,userID,password,
- allowAttributeName,denyAttributeName,idAttributeName);
+ allowAttributeName,denyAttributeName,idAttributeName,keystoreManager);
}
catch (NumberFormatException e)
{