/* * $Header: /home/data/cvs/rt/org.eclipse.ecf/tests/bundles/org.eclipse.ecf.tests.apache.httpclient.server/src/org/apache/commons/httpclient/server/SimpleProxy.java,v 1.1 2009/02/13 18:07:51 slewis Exp $ * $Revision: 1.1 $ * $Date: 2009/02/13 18:07:51 $ * * ==================================================================== * * Copyright 1999-2004 The Apache Software Foundation * * 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. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ package org.apache.commons.httpclient.server; import java.io.IOException; import org.apache.commons.httpclient.Credentials; /** * Simple server that registers default request handlers to act as a proxy. * * @author Ortwin Glueck * @author Oleg Kalnichevski */ public class SimpleProxy extends SimpleHttpServer { private SimpleConnManager connmanager = null; private HttpRequestHandlerChain stdchain = null; public SimpleProxy(int port) throws IOException { super(port); this.connmanager = new SimpleConnManager(); this.stdchain = new HttpRequestHandlerChain(); this.stdchain.appendHandler(new TransparentProxyRequestHandler()); this.stdchain.appendHandler(new ProxyRequestHandler(this.connmanager)); setRequestHandler(this.stdchain); } public SimpleProxy() throws IOException { this(0); } public void requireAuthentication(final Credentials creds, final String realm, boolean keepalive) { HttpRequestHandlerChain chain = new HttpRequestHandlerChain(this.stdchain); chain.prependHandler(new ProxyAuthRequestHandler(creds ,realm, keepalive)); setRequestHandler(chain); } public void requireAuthentication(final Credentials creds) { HttpRequestHandlerChain chain = new HttpRequestHandlerChain(this.stdchain); chain.prependHandler(new ProxyAuthRequestHandler(creds)); setRequestHandler(chain); } public void destroy() { super.destroy(); this.connmanager.shutdown(); } public void addHandler(final HttpRequestHandler handler) { this.stdchain.prependHandler(handler); } }