diff --git a/src/main/java/org/codelibs/fess/es/config/exentity/CrawlingConfig.java b/src/main/java/org/codelibs/fess/es/config/exentity/CrawlingConfig.java index e341c67cdb93f7426547cb76cd29b79c59e4c3f0..2912c6241e85fd432ebfc1d930ee1a124d8bd4cb 100644 --- a/src/main/java/org/codelibs/fess/es/config/exentity/CrawlingConfig.java +++ b/src/main/java/org/codelibs/fess/es/config/exentity/CrawlingConfig.java @@ -17,7 +17,12 @@ package org.codelibs.fess.es.config.exentity; import java.util.Map; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.codelibs.core.lang.StringUtil; import org.codelibs.fess.crawler.client.CrawlerClientFactory; +import org.codelibs.fess.crawler.client.http.HcHttpClient; +import org.codelibs.fess.mylasta.direction.FessConfig; +import org.codelibs.fess.util.ComponentUtil; public interface CrawlingConfig { @@ -43,6 +48,22 @@ public interface CrawlingConfig { Map<String, String> getConfigParameterMap(ConfigName name); + public default void initializeDefaultHttpProxy(final Map<String, Object> paramMap) { + final FessConfig fessConfig = ComponentUtil.getFessConfig(); + final String proxyHost = fessConfig.getHttpProxyHost(); + final String proxyPort = fessConfig.getHttpProxyPort(); + if (StringUtil.isNotBlank(proxyHost) && StringUtil.isNotBlank(proxyPort)) { + paramMap.put(HcHttpClient.PROXY_HOST_PROPERTY, proxyHost); + paramMap.put(HcHttpClient.PROXY_PORT_PROPERTY, proxyPort); + final String proxyUsername = fessConfig.getHttpProxyUsername(); + final String proxyPassword = fessConfig.getHttpProxyPassword(); + if (proxyUsername != null && proxyPassword != null) { + paramMap.put(HcHttpClient.PROXY_CREDENTIALS_PROPERTY, new UsernamePasswordCredentials(proxyUsername, proxyPassword)); + } + + } + } + public enum ConfigType { WEB("W"), FILE("F"), DATA("D"); diff --git a/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java b/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java index db2d027446c07128870b12061ba91019c1d1afa3..2d4f91c916e4f2c85395009be703454575a19034 100644 --- a/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java +++ b/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java @@ -250,6 +250,8 @@ public class DataConfig extends BsDataConfig implements CrawlingConfig { if (proxyUsername != null && proxyPassword != null) { factoryParamMap.put(HcHttpClient.PROXY_CREDENTIALS_PROPERTY, new UsernamePasswordCredentials(proxyUsername, proxyPassword)); } + } else { + initializeDefaultHttpProxy(factoryParamMap); } // file auth diff --git a/src/main/java/org/codelibs/fess/es/config/exentity/WebConfig.java b/src/main/java/org/codelibs/fess/es/config/exentity/WebConfig.java index bcbeac7e8dabecf1a48c44d0e25eaec3ac85e532..83e7f97f6da11eec1ea0ba58dd6801c124cf9a1f 100644 --- a/src/main/java/org/codelibs/fess/es/config/exentity/WebConfig.java +++ b/src/main/java/org/codelibs/fess/es/config/exentity/WebConfig.java @@ -238,10 +238,16 @@ public class WebConfig extends BsWebConfig implements CrawlingConfig { paramMap.put(HcHttpClient.REQUERT_HEADERS_PROPERTY, rhList.toArray(new org.codelibs.fess.crawler.client.http.RequestHeader[rhList.size()])); - // proxy credentials - if (paramMap.get("proxyUsername") != null && paramMap.get("proxyPassword") != null) { - paramMap.put(HcHttpClient.PROXY_CREDENTIALS_PROPERTY, new UsernamePasswordCredentials(paramMap.remove("proxyUsername") - .toString(), paramMap.remove("proxyPassword").toString())); + final String proxyHost = (String) paramMap.get("proxyHost"); + final String proxyPort = (String) paramMap.get("proxyPort"); + if (StringUtil.isNotBlank(proxyHost) && StringUtil.isNotBlank(proxyPort)) { + // proxy credentials + if (paramMap.get("proxyUsername") != null && paramMap.get("proxyPassword") != null) { + paramMap.put(HcHttpClient.PROXY_CREDENTIALS_PROPERTY, new UsernamePasswordCredentials(paramMap.remove("proxyUsername") + .toString(), paramMap.remove("proxyPassword").toString())); + } + } else { + initializeDefaultHttpProxy(paramMap); } return paramMap;