You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/12/13 15:03:06 UTC
git commit: should fix MARMOTTA-405 (SSL resources in LDClient)
Updated Branches:
refs/heads/develop 54670f4c9 -> 3bd9c85f1
should fix MARMOTTA-405 (SSL resources in LDClient)
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/3bd9c85f
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/3bd9c85f
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/3bd9c85f
Branch: refs/heads/develop
Commit: 3bd9c85f18831d4d570b5f29deeabf0674f26420
Parents: 54670f4
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Fri Dec 13 15:02:59 2013 +0100
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Fri Dec 13 15:02:59 2013 +0100
----------------------------------------------------------------------
.../ldclient/services/ldclient/LDClient.java | 38 +++++++++++---------
.../endpoint/FacebookGraphEndpoint.java | 2 +-
.../test/facebook/FacebookProviderTest.java | 9 ++---
.../ldclient/test/facebook/movie.sparql | 2 +-
.../endpoint/rdf/LinkedDataEndpoint.java | 2 +-
.../test/rdf/TestLinkedDataProvider.java | 30 +++++++++++-----
6 files changed, 48 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/3bd9c85f/libraries/ldclient/ldclient-core/src/main/java/org/apache/marmotta/ldclient/services/ldclient/LDClient.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-core/src/main/java/org/apache/marmotta/ldclient/services/ldclient/LDClient.java b/libraries/ldclient/ldclient-core/src/main/java/org/apache/marmotta/ldclient/services/ldclient/LDClient.java
index 13f2421..e57f10e 100644
--- a/libraries/ldclient/ldclient-core/src/main/java/org/apache/marmotta/ldclient/services/ldclient/LDClient.java
+++ b/libraries/ldclient/ldclient-core/src/main/java/org/apache/marmotta/ldclient/services/ldclient/LDClient.java
@@ -17,11 +17,7 @@
*/
package org.apache.marmotta.ldclient.services.ldclient;
-import org.apache.http.Header;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.ProtocolException;
+import org.apache.http.*;
import org.apache.http.client.HttpClient;
import org.apache.http.client.HttpRequestRetryHandler;
import org.apache.http.client.methods.HttpGet;
@@ -31,6 +27,7 @@ import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultRedirectStrategy;
import org.apache.http.impl.conn.PoolingClientConnectionManager;
@@ -48,13 +45,11 @@ import org.apache.marmotta.ldclient.model.ClientResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.net.ssl.SSLContext;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.ServiceLoader;
-import java.util.Set;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.util.*;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
@@ -128,8 +123,19 @@ public final class LDClient implements LDClientService {
httpParams.setIntParameter(ClientPNames.MAX_REDIRECTS,3);
SchemeRegistry schemeRegistry = new SchemeRegistry();
- schemeRegistry.register(
- new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
+ schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
+
+ try {
+ SSLContext sslcontext = SSLContext.getInstance("TLS");
+ sslcontext.init(null, null, null);
+ SSLSocketFactory sf = new SSLSocketFactory(sslcontext, SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
+
+ schemeRegistry.register(new Scheme("https", 443, sf));
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (KeyManagementException e) {
+ e.printStackTrace();
+ }
PoolingClientConnectionManager cm = new PoolingClientConnectionManager(schemeRegistry);
cm.setMaxTotal(20);
@@ -148,11 +154,11 @@ public final class LDClient implements LDClientService {
log.info("data provider: {}",provider.getName());
}
}
-
+
@Override
public boolean ping(String resource) {
//crappy implementation only for http
- if (resource.startsWith("http://")) {
+ if (resource.startsWith("http://") || resource.startsWith("https://")) {
try {
return (200 == client.execute(new HttpHead(resource)).getStatusLine().getStatusCode());
} catch (Exception e) {
@@ -406,5 +412,5 @@ public final class LDClient implements LDClientService {
}
}
-
+
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/3bd9c85f/libraries/ldclient/ldclient-provider-facebook/src/main/java/org/apache/marmotta/ldclient/endpoint/FacebookGraphEndpoint.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-facebook/src/main/java/org/apache/marmotta/ldclient/endpoint/FacebookGraphEndpoint.java b/libraries/ldclient/ldclient-provider-facebook/src/main/java/org/apache/marmotta/ldclient/endpoint/FacebookGraphEndpoint.java
index 134d8a8..d6a64cb 100644
--- a/libraries/ldclient/ldclient-provider-facebook/src/main/java/org/apache/marmotta/ldclient/endpoint/FacebookGraphEndpoint.java
+++ b/libraries/ldclient/ldclient-provider-facebook/src/main/java/org/apache/marmotta/ldclient/endpoint/FacebookGraphEndpoint.java
@@ -30,7 +30,7 @@ public class FacebookGraphEndpoint extends Endpoint {
public FacebookGraphEndpoint() {
- super("Facebook Graph API Provider", FacebookGraphProvider.PROVIDER_NAME, "^http://([^.]+)\\.facebook\\.com/.*", null, 86400L);
+ super("Facebook Graph API Provider", FacebookGraphProvider.PROVIDER_NAME, "^http(s?)://([^.]+)\\.facebook\\.com/.*", null, 86400L);
setPriority(PRIORITY_HIGH);
addContentType(new ContentType("application", "json"));
http://git-wip-us.apache.org/repos/asf/marmotta/blob/3bd9c85f/libraries/ldclient/ldclient-provider-facebook/src/test/java/org/apache/marmotta/ldclient/test/facebook/FacebookProviderTest.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-facebook/src/test/java/org/apache/marmotta/ldclient/test/facebook/FacebookProviderTest.java b/libraries/ldclient/ldclient-provider-facebook/src/test/java/org/apache/marmotta/ldclient/test/facebook/FacebookProviderTest.java
index 262dd70..350c04b 100644
--- a/libraries/ldclient/ldclient-provider-facebook/src/test/java/org/apache/marmotta/ldclient/test/facebook/FacebookProviderTest.java
+++ b/libraries/ldclient/ldclient-provider-facebook/src/test/java/org/apache/marmotta/ldclient/test/facebook/FacebookProviderTest.java
@@ -22,12 +22,7 @@ import org.apache.marmotta.ldclient.api.ldclient.LDClientService;
import org.apache.marmotta.ldclient.model.ClientResponse;
import org.apache.marmotta.ldclient.services.ldclient.LDClient;
import org.apache.marmotta.ldclient.test.helper.TestLDClient;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Assume;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.*;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import org.openrdf.query.BooleanQuery;
@@ -79,7 +74,7 @@ public class FacebookProviderTest {
@Test
public void testMovie() throws Exception {
- String uriMovie = "http://graph.facebook.com/160617097307237";
+ String uriMovie = "https://graph.facebook.com/160617097307237";
Assume.assumeTrue(ldclient.ping(uriMovie));
http://git-wip-us.apache.org/repos/asf/marmotta/blob/3bd9c85f/libraries/ldclient/ldclient-provider-facebook/src/test/resources/org/apache/marmotta/ldclient/test/facebook/movie.sparql
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-facebook/src/test/resources/org/apache/marmotta/ldclient/test/facebook/movie.sparql b/libraries/ldclient/ldclient-provider-facebook/src/test/resources/org/apache/marmotta/ldclient/test/facebook/movie.sparql
index 5cfc812..000e2cb 100644
--- a/libraries/ldclient/ldclient-provider-facebook/src/test/resources/org/apache/marmotta/ldclient/test/facebook/movie.sparql
+++ b/libraries/ldclient/ldclient-provider-facebook/src/test/resources/org/apache/marmotta/ldclient/test/facebook/movie.sparql
@@ -20,7 +20,7 @@ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX schema: <http://schema.org/>
ASK {
- <http://graph.facebook.com/160617097307237> dct:title "The Hobbit"@en ;
+ <https://graph.facebook.com/160617097307237> dct:title "The Hobbit"@en ;
rdf:type schema:Movie ;
schema:genre "Fantasy Adventure" .
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/3bd9c85f/libraries/ldclient/ldclient-provider-rdf/src/main/java/org/apache/marmotta/ldclient/endpoint/rdf/LinkedDataEndpoint.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-rdf/src/main/java/org/apache/marmotta/ldclient/endpoint/rdf/LinkedDataEndpoint.java b/libraries/ldclient/ldclient-provider-rdf/src/main/java/org/apache/marmotta/ldclient/endpoint/rdf/LinkedDataEndpoint.java
index 05960a7..454c282 100644
--- a/libraries/ldclient/ldclient-provider-rdf/src/main/java/org/apache/marmotta/ldclient/endpoint/rdf/LinkedDataEndpoint.java
+++ b/libraries/ldclient/ldclient-provider-rdf/src/main/java/org/apache/marmotta/ldclient/endpoint/rdf/LinkedDataEndpoint.java
@@ -29,7 +29,7 @@ import org.apache.marmotta.ldclient.api.endpoint.Endpoint;
public class LinkedDataEndpoint extends Endpoint {
public LinkedDataEndpoint() {
- super("Linked Data", "Linked Data", "http://.*", null, 86400L);
+ super("Linked Data", "Linked Data", "http(s?)://.*", null, 86400L);
setPriority(PRIORITY_LOW);
addContentType(new ContentType("application", "rdf+xml", 0.8));
addContentType(new ContentType("text", "turtle", 1.0));
http://git-wip-us.apache.org/repos/asf/marmotta/blob/3bd9c85f/libraries/ldclient/ldclient-provider-rdf/src/test/java/org/apache/marmotta/ldclient/test/rdf/TestLinkedDataProvider.java
----------------------------------------------------------------------
diff --git a/libraries/ldclient/ldclient-provider-rdf/src/test/java/org/apache/marmotta/ldclient/test/rdf/TestLinkedDataProvider.java b/libraries/ldclient/ldclient-provider-rdf/src/test/java/org/apache/marmotta/ldclient/test/rdf/TestLinkedDataProvider.java
index c1bfa8a..f6fa7cf 100644
--- a/libraries/ldclient/ldclient-provider-rdf/src/test/java/org/apache/marmotta/ldclient/test/rdf/TestLinkedDataProvider.java
+++ b/libraries/ldclient/ldclient-provider-rdf/src/test/java/org/apache/marmotta/ldclient/test/rdf/TestLinkedDataProvider.java
@@ -17,24 +17,19 @@
*/
package org.apache.marmotta.ldclient.test.rdf;
-import java.io.InputStream;
-
import org.apache.commons.io.IOUtils;
import org.apache.marmotta.ldclient.api.ldclient.LDClientService;
import org.apache.marmotta.ldclient.exception.DataRetrievalException;
import org.apache.marmotta.ldclient.model.ClientResponse;
import org.apache.marmotta.ldclient.services.ldclient.LDClient;
import org.apache.marmotta.ldclient.test.helper.TestLDClient;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Assume;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.*;
import org.openrdf.query.BooleanQuery;
import org.openrdf.query.QueryLanguage;
import org.openrdf.repository.RepositoryConnection;
+import java.io.InputStream;
+
/**
* Test if the LinkedDataProvider is working properly.
*
@@ -48,7 +43,8 @@ public class TestLinkedDataProvider {
private static final String MARMOTTA = "http://rdfohloh.wikier.org/project/marmotta";
private static final String WIKIER = "http://www.wikier.org/foaf#wikier";
private static final String EXAMPLE = "http://example.org/foo";
-
+ private static final String SSL = "https://example.org/foo";
+
private LDClientService ldclient;
@Before
@@ -178,4 +174,20 @@ public class TestLinkedDataProvider {
conn.close();
}
+ /**
+ * This method tests accessing a SSL resource - should throw a DataRetrievalException but otherwise work
+ *
+ * @throws Exception
+ *
+ */
+ @Test(expected=DataRetrievalException.class)
+ public void testSSL() throws Exception {
+ ClientResponse response = ldclient.retrieveResource(SSL);
+ RepositoryConnection conn = response.getTriples().getConnection();
+ conn.begin();
+ Assert.assertTrue(conn.size() == 0);
+ conn.commit();
+ conn.close();
+ }
+
}