Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ subprojects {
apply plugin: 'jacoco'
apply plugin: 'com.github.kt3k.coveralls'
// apply plugin: 'license'
version = '1.2.2'
version = '1.2.3-SNAPSHOT'
group = 'org.frontcache'

// upload binaries to Maven repository. $mavenLocalRepo (defined in gradle.properties)
Expand Down Expand Up @@ -143,8 +143,8 @@ project(':frontcache-core') {
provided 'javax.servlet:javax.servlet-api:3.1.0'
provided 'javax.servlet.jsp:jsp-api:2.0'

compile 'com.fasterxml.jackson.core:jackson-databind:2.8.11.1'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.5'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.9'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.9'
compile 'org.apache.httpcomponents:httpclient:4.5.1'
compile 'commons-io:commons-io:2.4'
compile 'ch.qos.logback:logback-classic:1.1.3'
Expand Down
88 changes: 44 additions & 44 deletions frontcache-agent/pom.xml
Original file line number Diff line number Diff line change
@@ -1,58 +1,58 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.frontcache</groupId>
<artifactId>frontcache</artifactId>
<version>1.2.2</version>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.frontcache</groupId>
<artifactId>frontcache</artifactId>
<version>1.2.3-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>frontcache-agent</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
</parent>

<artifactId>frontcache-agent</artifactId>

<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>

<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/**</include>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>true</filtering>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/java</directory>
<includes>
<include>**/**</include>
</includes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<includes>
<include>**/**</include>
</includes>
<testResource>
<directory>src/test/java</directory>
<includes>
<include>**/**</include>
</includes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<includes>
<include>**/**</include>
</includes>
</testResource>

</testResources>

</build>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;

import javax.net.ssl.SSLContext;

import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.HttpRequest;
Expand All @@ -36,15 +39,20 @@
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeaderElementIterator;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.ssl.TrustStrategy;


public class FrontCacheAgent {


private String frontCacheURL;

private String frontCacheURI;
Expand Down Expand Up @@ -82,6 +90,20 @@ public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
}
};


TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;

SSLContext sslContext = null;
try {
sslContext = org.apache.http.ssl.SSLContexts.custom()
.loadTrustMaterial(null, acceptingTrustStrategy)
.build();
} catch (Exception e) {
e.printStackTrace();
}

SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);

client = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false))
Expand All @@ -97,6 +119,8 @@ public HttpUriRequest getRedirect(HttpRequest request, HttpResponse response, Ht
return null;
}
})
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.setSSLSocketFactory(csf)
.build();

this.frontCacheURL = frontcacheURL;
Expand Down
6 changes: 3 additions & 3 deletions frontcache-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.frontcache</groupId>
<artifactId>frontcache</artifactId>
<version>1.2.2</version>
<version>1.2.3-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand All @@ -27,12 +27,12 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.11.1</version>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.5</version>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
Expand Down
109 changes: 67 additions & 42 deletions frontcache-core/src/main/java/org/frontcache/FrontCacheEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
Expand All @@ -31,6 +38,12 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.servlet.FilterChain;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Expand All @@ -45,7 +58,13 @@
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClients;
Expand All @@ -54,6 +73,7 @@
import org.apache.http.pool.PoolStats;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.ssl.TrustStrategy;
import org.frontcache.cache.CacheManager;
import org.frontcache.cache.CacheProcessor;
import org.frontcache.core.DomainContext;
Expand All @@ -73,7 +93,7 @@

public class FrontCacheEngine {


private Map<String, DomainContext> domainConfigMap = new ConcurrentHashMap<String, DomainContext>(); // <DomainStr, DomainConfig>

private String frontcacheHttpPort = null;
Expand Down Expand Up @@ -370,51 +390,56 @@ public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
return 10 * 1000;
}
};

return HttpClients.custom()
.setConnectionManager(newConnectionManager())
.setDefaultRequestConfig(requestConfig)
// .setSSLHostnameVerifier(new NoopHostnameVerifier()) // for SSL do not verify certificate's host
.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false))
.setKeepAliveStrategy(keepAliveStrategy)
.setRedirectStrategy(new RedirectStrategy() {
@Override
public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException {
return false;
}

@Override
public HttpUriRequest getRedirect(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException {
return null;
}
})
.build();

return HttpClients.custom()
.setConnectionManager(newConnectionManager())
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false))
.setKeepAliveStrategy(keepAliveStrategy)
.setRedirectStrategy(new RedirectStrategy() {
@Override
public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException {
return false;
}

@Override
public HttpUriRequest getRedirect(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException {
return null;
}
})
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.build();
}

private PoolingHttpClientConnectionManager newConnectionManager() {
try {
// KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
// trustStore.load(new FileInputStream(keyStorePath), keyStorePassword.toCharArray());

// MySSLSocketFactory sf = new MySSLSocketFactory(trustStore);
// sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);


// final Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
// .register("http", PlainConnectionSocketFactory.INSTANCE)
// .register("https", sf)
// .build();

// connectionManager = new PoolingHttpClientConnectionManager(registry);
connectionManager = new PoolingHttpClientConnectionManager();

connectionManager.setMaxTotal(fcConnectionsMaxTotal);
connectionManager.setDefaultMaxPerRoute(fcConnectionsMaxPerRoute);

return connectionManager;
} catch (Exception ex) {
throw new RuntimeException(ex);
}

if (connectionManager == null){

try {

TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;

SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();

SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);

final Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.INSTANCE)
.register("https", csf)
.build();

connectionManager = new PoolingHttpClientConnectionManager(registry);

connectionManager.setMaxTotal(fcConnectionsMaxTotal);
connectionManager.setDefaultMaxPerRoute(fcConnectionsMaxPerRoute);

} catch (Exception ex) {
throw new RuntimeException(ex);
}
}

return connectionManager;
}

/**
Expand Down
Loading