fix #1682 use default proxy settings

This commit is contained in:
Shinsuke Sugaya 2018-06-03 06:14:11 +09:00
parent b5f114b384
commit 51b9cdc3c3
3 changed files with 33 additions and 4 deletions

View file

@ -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");

View file

@ -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

View file

@ -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;