CAMEL-8036 JettyComponent should not setup the security handler more than once


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ebf9b1fa
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ebf9b1fa
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ebf9b1fa

Branch: refs/heads/camel-2.13.x
Commit: ebf9b1fa6e02c2231b13ebc13ccfb666ea52060f
Parents: aae2e24
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Wed Nov 12 17:14:10 2014 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Wed Nov 12 18:50:25 2014 +0800

----------------------------------------------------------------------
 .../org/apache/camel/component/jetty/JettyHttpComponent.java  | 7 +++++--
 .../component/jetty/HttpBasicAuthComponentConfiguredTest.java | 6 ++++++
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ebf9b1fa/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
 
b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index dd337c5..1c39641 100644
--- 
a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ 
b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -974,8 +974,11 @@ public class JettyHttpComponent extends HttpComponent {
         if (handlers != null && !handlers.isEmpty()) {
             for (Handler handler : handlers) {
                 if (handler instanceof HandlerWrapper) {
-                    ((HandlerWrapper) handler).setHandler(server.getHandler());
-                    server.setHandler(handler);
+                    // avoid setting the security handler more than once
+                    if (!handler.equals(server.getHandler())) {
+                        ((HandlerWrapper) 
handler).setHandler(server.getHandler());
+                        server.setHandler(handler);
+                    }
                 } else {
                     HandlerCollection handlerCollection = new 
HandlerCollection();
                     handlerCollection.addHandler(server.getHandler());

http://git-wip-us.apache.org/repos/asf/camel/blob/ebf9b1fa/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthComponentConfiguredTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthComponentConfiguredTest.java
 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthComponentConfiguredTest.java
index a34ffa9..18fccfc 100644
--- 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthComponentConfiguredTest.java
+++ 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBasicAuthComponentConfiguredTest.java
@@ -71,6 +71,9 @@ public class HttpBasicAuthComponentConfiguredTest extends 
BaseJettyTest {
     public void testHttpBasicAuth() throws Exception {
         String out = template.requestBody("http://localhost:{{port}}/test";, 
"Hello World", String.class);
         assertEquals("Bye World", out);
+        
+        out = template.requestBody("http://localhost:{{port}}/anotherTest";, 
"Hello World", String.class);
+        assertEquals("See you later", out);
     }
 
     @Override
@@ -97,6 +100,9 @@ public class HttpBasicAuthComponentConfiguredTest extends 
BaseJettyTest {
                         }
                     })
                     .transform(constant("Bye World"));
+                
+                
from("jetty://http://localhost:{{port}}/anotherTest?handlers=myAuthHandler";)
+                    .transform(constant("See you later"));
             }
         };
     }

Reply via email to