disable ssl validation for mercurial hook detection

This commit is contained in:
Sebastian Sdorra
2012-06-04 14:06:30 +02:00
parent 715ceedf36
commit ade02c31c5

View File

@@ -36,6 +36,7 @@ package sonia.scm.repository;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -43,6 +44,9 @@ import org.slf4j.LoggerFactory;
import sonia.scm.ConfigChangedListener; import sonia.scm.ConfigChangedListener;
import sonia.scm.config.ScmConfiguration; import sonia.scm.config.ScmConfiguration;
import sonia.scm.net.HttpClient;
import sonia.scm.net.HttpRequest;
import sonia.scm.net.HttpResponse;
import sonia.scm.util.HttpUtil; import sonia.scm.util.HttpUtil;
import sonia.scm.util.Util; import sonia.scm.util.Util;
@@ -81,12 +85,15 @@ public class HgHookManager implements ConfigChangedListener<ScmConfiguration>
* *
* *
* @param configuration * @param configuration
* @param httpClientProvider
*/ */
@Inject @Inject
public HgHookManager(ScmConfiguration configuration) public HgHookManager(ScmConfiguration configuration,
Provider<HttpClient> httpClientProvider)
{ {
this.configuration = configuration; this.configuration = configuration;
this.configuration.addListener(this); this.configuration.addListener(this);
this.httpClientProvider = httpClientProvider;
} }
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
@@ -292,10 +299,15 @@ public class HgHookManager implements ConfigChangedListener<ScmConfiguration>
logger.trace("check hook url {}", url); logger.trace("check hook url {}", url);
} }
HttpURLConnection connection = HttpRequest request = new HttpRequest(url);
(HttpURLConnection) new URL(url).openConnection();
result = connection.getResponseCode() == 204; request.setDisableCertificateValidation(true);
request.setDisableHostnameValidation(true);
request.setIgnoreProxySettings(true);
HttpResponse response = httpClientProvider.get().get(request);
result = response.getStatusCode() == 204;
} }
catch (IOException ex) catch (IOException ex)
{ {
@@ -318,4 +330,7 @@ public class HgHookManager implements ConfigChangedListener<ScmConfiguration>
/** Field description */ /** Field description */
private volatile String hookUrl; private volatile String hookUrl;
/** Field description */
private Provider<HttpClient> httpClientProvider;
} }