mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
avoid erros from ConnectHandler, correction for #6d16fa9
This commit is contained in:
parent
97983ba89f
commit
10326892a8
|
@ -33,26 +33,28 @@ import java.util.StringTokenizer;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import net.yacy.cora.protocol.Domains;
|
|
||||||
|
|
||||||
|
import net.yacy.cora.protocol.Domains;
|
||||||
|
import net.yacy.cora.protocol.HeaderFramework;
|
||||||
import net.yacy.repository.Blacklist.BlacklistType;
|
import net.yacy.repository.Blacklist.BlacklistType;
|
||||||
import net.yacy.search.Switchboard;
|
import net.yacy.search.Switchboard;
|
||||||
|
|
||||||
|
import org.eclipse.jetty.proxy.ConnectHandler;
|
||||||
import org.eclipse.jetty.server.Handler;
|
import org.eclipse.jetty.server.Handler;
|
||||||
import org.eclipse.jetty.server.Request;
|
import org.eclipse.jetty.server.Request;
|
||||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* abstract jetty http handler
|
* abstract jetty http handler
|
||||||
* only request to remote hosts (proxy requests) are processed by derived classes
|
* only request to remote hosts (proxy requests) are processed by derived classes
|
||||||
*/
|
*/
|
||||||
abstract public class AbstractRemoteHandler extends AbstractHandler implements Handler {
|
abstract public class AbstractRemoteHandler extends ConnectHandler implements Handler {
|
||||||
|
|
||||||
protected Switchboard sb = null;
|
protected Switchboard sb = null;
|
||||||
private List<String> localVirtualHostNames; // list for quick check for req to local peer
|
private List<String> localVirtualHostNames; // list for quick check for req to local peer
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doStart() {
|
protected void doStart() throws Exception {
|
||||||
|
super.doStart();
|
||||||
sb = Switchboard.getSwitchboard();
|
sb = Switchboard.getSwitchboard();
|
||||||
|
|
||||||
localVirtualHostNames = new LinkedList<String>();
|
localVirtualHostNames = new LinkedList<String>();
|
||||||
|
@ -130,6 +132,12 @@ abstract public class AbstractRemoteHandler extends AbstractHandler implements H
|
||||||
baseRequest.setHandled(true);
|
baseRequest.setHandled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (request.getMethod().equalsIgnoreCase(HeaderFramework.METHOD_CONNECT)) {
|
||||||
|
// will be done by the ConnectHandler
|
||||||
|
super.handle(target, baseRequest, request, response);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
handleRemote(target, baseRequest, request, response);
|
handleRemote(target, baseRequest, request, response);
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ import net.yacy.search.Switchboard;
|
||||||
import net.yacy.search.SwitchboardConstants;
|
import net.yacy.search.SwitchboardConstants;
|
||||||
import net.yacy.utils.PKCS12Tool;
|
import net.yacy.utils.PKCS12Tool;
|
||||||
import org.eclipse.jetty.http.HttpVersion;
|
import org.eclipse.jetty.http.HttpVersion;
|
||||||
import org.eclipse.jetty.proxy.ConnectHandler;
|
|
||||||
import org.eclipse.jetty.server.Connector;
|
import org.eclipse.jetty.server.Connector;
|
||||||
import org.eclipse.jetty.server.Handler;
|
import org.eclipse.jetty.server.Handler;
|
||||||
import org.eclipse.jetty.server.HttpConfiguration;
|
import org.eclipse.jetty.server.HttpConfiguration;
|
||||||
|
@ -168,7 +167,7 @@ public class Jetty9HttpServerImpl implements YaCyHttpServer {
|
||||||
// define list of YaCy specific general handlers
|
// define list of YaCy specific general handlers
|
||||||
HandlerList handlers = new HandlerList();
|
HandlerList handlers = new HandlerList();
|
||||||
handlers.setHandlers(new Handler[]
|
handlers.setHandlers(new Handler[]
|
||||||
{domainHandler, new ProxyCacheHandler(), new ProxyHandler(), new ConnectHandler()});
|
{domainHandler, new ProxyCacheHandler(), new ProxyHandler()});
|
||||||
|
|
||||||
// context handler for dispatcher and security (hint: dispatcher requires a context)
|
// context handler for dispatcher and security (hint: dispatcher requires a context)
|
||||||
ContextHandler context = new ContextHandler();
|
ContextHandler context = new ContextHandler();
|
||||||
|
|
|
@ -31,9 +31,11 @@ import java.io.OutputStream;
|
||||||
import java.net.SocketException;
|
import java.net.SocketException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import net.yacy.cora.date.GenericFormatter;
|
import net.yacy.cora.date.GenericFormatter;
|
||||||
import net.yacy.cora.document.id.DigestURL;
|
import net.yacy.cora.document.id.DigestURL;
|
||||||
import net.yacy.cora.protocol.ClientIdentification;
|
import net.yacy.cora.protocol.ClientIdentification;
|
||||||
|
@ -47,6 +49,7 @@ import net.yacy.crawler.data.Cache;
|
||||||
import net.yacy.crawler.retrieval.Response;
|
import net.yacy.crawler.retrieval.Response;
|
||||||
import net.yacy.server.http.HTTPDProxyHandler;
|
import net.yacy.server.http.HTTPDProxyHandler;
|
||||||
import net.yacy.server.http.MultiOutputStream;
|
import net.yacy.server.http.MultiOutputStream;
|
||||||
|
|
||||||
import org.apache.http.Header;
|
import org.apache.http.Header;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
import org.eclipse.jetty.server.Handler;
|
import org.eclipse.jetty.server.Handler;
|
||||||
|
@ -61,7 +64,7 @@ public class ProxyHandler extends AbstractRemoteHandler implements Handler {
|
||||||
protected int timeout = 10000;
|
protected int timeout = 10000;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doStart() {
|
protected void doStart() throws Exception {
|
||||||
super.doStart();
|
super.doStart();
|
||||||
timeout = sb.getConfigInt("proxy.clientTimeout", 10000);
|
timeout = sb.getConfigInt("proxy.clientTimeout", 10000);
|
||||||
}
|
}
|
||||||
|
@ -141,11 +144,6 @@ public class ProxyHandler extends AbstractRemoteHandler implements Handler {
|
||||||
HttpServletResponse response) throws IOException, ServletException {
|
HttpServletResponse response) throws IOException, ServletException {
|
||||||
|
|
||||||
sb.proxyLastAccess = System.currentTimeMillis();
|
sb.proxyLastAccess = System.currentTimeMillis();
|
||||||
|
|
||||||
if (request.getMethod().equalsIgnoreCase(HeaderFramework.METHOD_CONNECT)) {
|
|
||||||
// will be done by the ConnectHandler
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
RequestHeader proxyHeaders = convertHeaderFromJetty(request);
|
RequestHeader proxyHeaders = convertHeaderFromJetty(request);
|
||||||
setProxyHeaderForClient(request, proxyHeaders);
|
setProxyHeaderForClient(request, proxyHeaders);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user