1 /* 2 * $Header: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/server/SimpleProxy.java,v 1.1.2.2 2004/02/22 18:21:18 olegk Exp $ 3 * $Revision: 1.1.2.2 $ 4 * $Date: 2004/02/22 18:21:18 $ 5 * 6 * ==================================================================== 7 * 8 * Copyright 1999-2004 The Apache Software Foundation 9 * 10 * Licensed under the Apache License, Version 2.0 (the "License"); 11 * you may not use this file except in compliance with the License. 12 * You may obtain a copy of the License at 13 * 14 * http://www.apache.org/licenses/LICENSE-2.0 15 * 16 * Unless required by applicable law or agreed to in writing, software 17 * distributed under the License is distributed on an "AS IS" BASIS, 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 * See the License for the specific language governing permissions and 20 * limitations under the License. 21 * ==================================================================== 22 * 23 * This software consists of voluntary contributions made by many 24 * individuals on behalf of the Apache Software Foundation. For more 25 * information on the Apache Software Foundation, please see 26 * <http://www.apache.org/>. 27 * 28 * [Additional notices, if required by prior licensing conditions] 29 * 30 */ 31 32 package org.apache.commons.httpclient.server; 33 34 import java.io.IOException; 35 36 import org.apache.commons.httpclient.Credentials; 37 38 /*** 39 * Simple server that registers default request handlers to act as 40 * a proxy. 41 * @author Ortwin Glueck 42 */ 43 public class SimpleProxy extends SimpleHttpServer { 44 private HttpRequestHandlerChain chain = new SimpleChain(); 45 46 /*** 47 * @throws IOException 48 */ 49 public SimpleProxy() throws IOException { 50 setRequestHandler(chain); 51 } 52 53 /*** 54 * 55 * @param port The local TCP port to listen on 56 * @throws IOException 57 */ 58 public SimpleProxy(int port) throws IOException { 59 super(port); 60 } 61 62 public void requireCredentials(Credentials creds) { 63 chain.prependHandler(new ProxyAuthRequestHandler(creds)); 64 } 65 66 private class SimpleChain extends HttpRequestHandlerChain { 67 public SimpleChain() { 68 appendHandler(new TransparentProxyRequestHandler()); 69 appendHandler(new ProxyRequestHandler()); 70 } 71 } 72 73 74 }