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")); } }; }