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());
+ }
+
+}