You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/10/20 16:07:41 UTC

svn commit: r827475 - in /camel/trunk/components: camel-http/src/main/java/org/apache/camel/component/http/ camel-jetty/src/test/java/org/apache/camel/component/jetty/ camel-jetty/src/test/resources/

Author: davsclaus
Date: Tue Oct 20 14:07:41 2009
New Revision: 827475

URL: http://svn.apache.org/viewvc?rev=827475&view=rev
Log:
MR-194: Added unit tests.

Added:
    camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java   (with props)
    camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties   (with props)
Modified:
    camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
    camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java?rev=827475&r1=827474&r2=827475&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java Tue Oct 20 14:07:41 2009
@@ -83,7 +83,6 @@
         String username = getAndRemoveParameter(parameters, "username", String.class);
         String password = getAndRemoveParameter(parameters, "password", String.class);
         if (username != null && password != null) {
-            
             httpClientConfigurer = CompositeHttpConfigurer.combineConfigurers(
                 httpClientConfigurer, 
                 new BasicAuthenticationHttpClientConfigurer(username, password));
@@ -107,8 +106,7 @@
     }
     
     @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map parameters)
-        throws Exception {
+    protected Endpoint createEndpoint(String uri, String remaining, Map parameters) throws Exception {
 
         // http client can be configured from URI options
         HttpClientParams clientParams = new HttpClientParams();

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java?rev=827475&r1=827474&r2=827475&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java Tue Oct 20 14:07:41 2009
@@ -80,16 +80,6 @@
         return new HttpPollingConsumer(this);
     }
 
-    public Exchange createExchange(ExchangePattern pattern) {
-        return new DefaultExchange(this, pattern);
-    }
-
-    public Exchange createExchange(HttpServletRequest request, HttpServletResponse response) {
-        DefaultExchange exchange = new DefaultExchange(this, ExchangePattern.InOut);
-        exchange.setIn(new HttpMessage(exchange, request, response));
-        return exchange;
-    }
-
     /**
      * Factory method used by producers and consumers to create a new {@link HttpClient} instance
      */

Added: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java?rev=827475&view=auto
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java (added)
+++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java Tue Oct 20 14:07:41 2009
@@ -0,0 +1,91 @@
+/**
+ * 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.camel.component.jetty;
+
+import java.io.IOException;
+import java.security.Principal;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+import org.mortbay.jetty.security.Constraint;
+import org.mortbay.jetty.security.ConstraintMapping;
+import org.mortbay.jetty.security.HashUserRealm;
+import org.mortbay.jetty.security.SecurityHandler;
+
+/**
+ * @version $Revision$
+ */
+public class HttpBasicAuthTest extends CamelTestSupport {
+
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry jndi = super.createRegistry();
+        jndi.bind("myAuthHandler", getSecurityHandler());
+        return jndi;
+    }
+
+    private SecurityHandler getSecurityHandler() throws IOException {
+        Constraint constraint = new Constraint();
+        constraint.setName(Constraint.__BASIC_AUTH);
+
+        constraint.setRoles(new String[]{"user"});
+        constraint.setAuthenticate(true);
+
+        ConstraintMapping cm = new ConstraintMapping();
+        cm.setConstraint(constraint);
+        cm.setPathSpec("/*");
+
+        SecurityHandler sh = new SecurityHandler();
+        HashUserRealm realm = new HashUserRealm("MyRealm", "src/test/resources/myRealm.properties");
+        sh.setUserRealm(realm);
+        sh.setConstraintMappings(new ConstraintMapping[]{cm});
+
+        return sh;
+    }
+
+    @Test
+    public void testHttpBaiscAuth() throws Exception {
+        String out = template.requestBody("http://localhost:9080/test?username=donald&password=duck", "Hello World", String.class);
+        assertEquals("Bye World", out);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("jetty://http://localhost:9080/test?handlers=myAuthHandler")
+                    .process(new Processor() {
+                        public void process(Exchange exchange) throws Exception {
+                            HttpServletRequest req = exchange.getIn().getBody(HttpServletRequest.class);
+                            assertNotNull(req);
+                            Principal user = req.getUserPrincipal();
+                            assertNotNull(user);
+                            assertEquals("donald", user.getName());
+                        }
+                    })
+                    .transform(constant("Bye World"));
+            }
+        };
+    }
+}

Propchange: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties?rev=827475&view=auto
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties (added)
+++ camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties Tue Oct 20 14:07:41 2009
@@ -0,0 +1,18 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+donald: duck, user
\ No newline at end of file

Propchange: camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: camel/trunk/components/camel-jetty/src/test/resources/myRealm.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain