/* * Zed Attack Proxy (ZAP) and its related class files. * * ZAP is an HTTP/HTTPS proxy for assessing web application security. * * Copyright 2010 psiinon@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.zaproxy.zap; import java.net.Socket; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpConnection; /** * Custom {@link HttpConnection} that exposes its socket and avoids closing. */ public class ZapHttpConnection extends HttpConnection { /** * Creates a new HTTP connection for the given host configuration. * * @param hostConfiguration the host/proxy/protocol to use */ public ZapHttpConnection(HostConfiguration hostConfiguration) { super(hostConfiguration); } /** * Returns the socket of this connection object. Make socket available, as * parent getSocket() is protected. * * @return Outgoing (remote) socket connection. */ @Override public Socket getSocket() { return super.getSocket(); } /** * Avoid closing in- & output stream as that would close the underlying * socket also. We have to keep it for our WebSocket connection. */ @Override protected void closeSocketAndStreams() { // do not close anything } }