You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/09/06 18:40:49 UTC

svn commit: r1381674 - /cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/http/HTTPProxyAuthConduitTest.java

Author: dkulp
Date: Thu Sep  6 16:40:48 2012
New Revision: 1381674

URL: http://svn.apache.org/viewvc?rev=1381674&view=rev
Log:
Add a test for basic-auth to the proxy

Added:
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/http/HTTPProxyAuthConduitTest.java

Added: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/http/HTTPProxyAuthConduitTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/http/HTTPProxyAuthConduitTest.java?rev=1381674&view=auto
==============================================================================
--- cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/http/HTTPProxyAuthConduitTest.java (added)
+++ cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/http/HTTPProxyAuthConduitTest.java Thu Sep  6 16:40:48 2012
@@ -0,0 +1,111 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.systest.http;
+
+import java.util.HashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.transport.http.HTTPConduit;
+import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
+
+import org.jboss.netty.handler.codec.http.HttpRequest;
+
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+
+import org.littleshoot.proxy.DefaultHttpProxyServer;
+import org.littleshoot.proxy.HttpFilter;
+import org.littleshoot.proxy.HttpRequestFilter;
+import org.littleshoot.proxy.ProxyAuthorizationHandler;
+
+
+/**
+ * 
+ */
+public class HTTPProxyAuthConduitTest extends HTTPConduitTest {
+    static final int PROXY_PORT = Integer.parseInt(allocatePort(HTTPProxyAuthConduitTest.class));
+    static DefaultHttpProxyServer proxy;
+    static CountingFilter requestFilter = new CountingFilter();
+    
+    static class CountingFilter implements HttpRequestFilter {
+        AtomicInteger count = new AtomicInteger();
+        public void filter(HttpRequest httpRequest) {
+            count.incrementAndGet();
+        }
+        
+        public void reset() {
+            count.set(0);
+        }
+        public int getCount() {
+            return count.get();
+        }
+    }
+    
+    public HTTPProxyAuthConduitTest() {
+    }
+
+    
+    @AfterClass
+    public static void stopProxy() {
+        proxy.stop();
+        proxy = null;
+    }
+    
+    @BeforeClass
+    public static void startProxy() {
+        proxy = new DefaultHttpProxyServer(PROXY_PORT, requestFilter, new HashMap<String, HttpFilter>());
+        proxy.addProxyAuthenticationHandler(new ProxyAuthorizationHandler() {
+            public boolean authenticate(String userName, String password) {
+                return "password".equals(password) && "CXF".equals(userName);
+            }
+        });
+        proxy.start();
+    }
+    @Before
+    public void resetCount() {
+        requestFilter.reset();
+    }
+    
+    public void configureProxy(Client client) {
+        HTTPConduit cond = (HTTPConduit)client.getConduit();
+        HTTPClientPolicy pol = cond.getClient();
+        if (pol == null) {
+            pol = new HTTPClientPolicy();
+            cond.setClient(pol);
+        }
+        pol.setProxyServer("localhost");
+        pol.setProxyServerPort(PROXY_PORT);
+        ProxyAuthorizationPolicy auth = new ProxyAuthorizationPolicy();
+        auth.setUserName("CXF");
+        auth.setPassword("password");
+        cond.setProxyAuthorization(auth);
+    }
+    
+    public void resetProxyCount() {
+        requestFilter.reset();
+    }
+    public void assertProxyRequestCount(int i) {
+        assertEquals("Unexpected request count", i, requestFilter.getCount());
+    }
+    
+}