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 e341c67cd..2912c6241 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 getConfigParameterMap(ConfigName name); + public default void initializeDefaultHttpProxy(final Map 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 db2d02744..2d4f91c91 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 bcbeac7e8..83e7f97f6 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;