You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Gerald Kallas (Jira)" <ji...@apache.org> on 2020/05/05 10:11:00 UTC

[jira] [Comment Edited] (CAMEL-15000) Using a registered ConstraintSecurityHandler in another Blueprint file causes an java.lang.IllegalStateException: STARTED

    [ https://issues.apache.org/jira/browse/CAMEL-15000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17099742#comment-17099742 ] 

Gerald Kallas edited comment on CAMEL-15000 at 5/5/20, 10:10 AM:
-----------------------------------------------------------------

[~davsclaus] 

At 1st I've done a vanilla installation of karaf 4.2.8. The deployed files for reference see at the bottom.

My etc/user.properties looks like .. 
{code:java}
...
username1 = password1,TSTISP001
{code}
Afterwards I did execute these commands .. 
{code:java}
feature:repo-add camel 3.2.0
feature:install camel camel-jetty
{code}
No error but the security handler seems to be ignored completely. The blueprint all-in-one works but the security handler is being ignored. The 2 blueprints separated show no errors during deployment, the security handler is being ignored either (means the route is working but with no auth).

 

At 2nd I've done again a vanilla installation of karaf 4.2.8. Same etc/user.properties.

I did execute (you may recognize additionally the webconsole feature)
{code:java}
feature:repo-add camel 3.2.0
feature:install webconsole camel camel-jetty
{code}
The blueprint all-in-one now works with authentication. The 2 blueprints separated shows the errors during deployment ..
{code:java}
2020-05-05T09:55:57,808 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Installing bundle isp.jettyHttpComponent.xml / 0.0.0
2020-05-05T09:55:57,845 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Unbinding bundle: [org.apache.karaf.webconsole.console [117]]
2020-05-05T09:55:57,850 | INFO  | paxweb-config-1-thread-2 | ContextHandler                   | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Stopped HttpServiceContext{httpContext=DefaultHttpContext [bundle=org.apache.karaf.webconsole.console [117], contextID=custom]}
2020-05-05T09:55:57,851 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Unbinding bundle: [org.apache.karaf.http.core [113]]
2020-05-05T09:55:57,856 | INFO  | activator-1-thread-3 | CommandExtension                 | 34 - org.apache.karaf.shell.core - 4.2.8 | Unregistering commands for bundle org.apache.karaf.http.core/4.2.8
2020-05-05T09:55:57,895 | INFO  | activator-1-thread-3 | HttpPlugin                       | 120 - org.apache.karaf.webconsole.http - 4.2.8 | Http plugin deactivated
2020-05-05T09:55:57,897 | INFO  | paxweb-config-1-thread-2 | AbstractConnector                | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Stopped default@4dcfa0eb{HTTP/1.1,[http/1.1]}{0.0.0.0:8181}
2020-05-05T09:55:57,897 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | node0 Stopped scavenging
2020-05-05T09:55:57,900 | INFO  | paxweb-config-1-thread-2 | Activator                        | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | ServerControllerFactory is gone, HTTP Service is not available now.
2020-05-05T09:55:57,902 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | BlueprintContainerImpl           | 49 - org.apache.aries.blueprint.core - 1.10.2 | Blueprint bundle isp.jettyHttpComponent.xml/0.0.0 has been started
2020-05-05T09:55:57,910 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Started bundle: blueprint:file:/opt/apache-karaf-4.2.8/deploy/isp.jettyHttpComponent.xml
2020-05-05T09:55:57,931 | INFO  | paxweb-config-1-thread-2 | JettyFactoryImpl                 | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | No ALPN class available
2020-05-05T09:55:57,931 | INFO  | paxweb-config-1-thread-2 | JettyFactoryImpl                 | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | HTTP/2 not available, creating standard ServerConnector for Http
2020-05-05T09:55:57,932 | INFO  | paxweb-config-1-thread-2 | JettyServerImpl                  | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | Pax Web available at [0.0.0.0]:[8181]
2020-05-05T09:55:57,936 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Binding bundle: [org.apache.karaf.http.core [113]] to http service
2020-05-05T09:55:57,941 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Binding bundle: [org.apache.karaf.webconsole.console [117]] to http service
2020-05-05T09:55:57,949 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | will add org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer to ServletContainerInitializers
2020-05-05T09:55:57,949 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | added ServletContainerInitializer: org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer
2020-05-05T09:55:57,951 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | will add org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer to ServletContainerInitializers
2020-05-05T09:55:57,964 | INFO  | activator-1-thread-4 | CommandExtension                 | 34 - org.apache.karaf.shell.core - 4.2.8 | Registering commands for bundle org.apache.karaf.http.core/4.2.8
2020-05-05T09:55:57,983 | INFO  | activator-1-thread-4 | HttpPlugin                       | 120 - org.apache.karaf.webconsole.http - 4.2.8 | Http plugin activated
2020-05-05T09:55:58,090 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | added ServletContainerInitializer: org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer
2020-05-05T09:55:58,092 | INFO  | paxweb-config-1-thread-2 | HttpServiceContext               | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | registering context DefaultHttpContext [bundle=org.apache.karaf.webconsole.console [117], contextID=custom], with context-name:
2020-05-05T09:55:58,097 | INFO  | paxweb-config-1-thread-2 | WebSocketServerFactory           | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | No DecoratedObjectFactory provided, using new org.eclipse.jetty.util.DecoratedObjectFactory[decorators=1]
2020-05-05T09:55:58,101 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | DefaultSessionIdManager workerName=node0
2020-05-05T09:55:58,101 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | No SessionScavenger set, using defaults
2020-05-05T09:55:58,102 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | node0 Scavenging every 660000ms
2020-05-05T09:55:58,110 | INFO  | paxweb-config-1-thread-2 | ContextHandler                   | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Started HttpServiceContext{httpContext=DefaultHttpContext [bundle=org.apache.karaf.webconsole.console [117], contextID=custom]}
2020-05-05T09:55:58,111 | INFO  | paxweb-config-1-thread-2 | Server                           | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | jetty-9.4.22.v20191022; built: 2019-10-22T13:37:13.455Z; git: b1e6b55512e008f7fbdf1cbea4ff8a6446d1073b; jvm 11.0.6+10-LTS
2020-05-05T09:55:58,119 | INFO  | paxweb-config-1-thread-2 | AbstractConnector                | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Started default@2db6caad{HTTP/1.1,[http/1.1]}{0.0.0.0:8181}
2020-05-05T09:55:58,119 | INFO  | paxweb-config-1-thread-2 | Server                           | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Started @127384ms
2020-05-05T09:56:00,942 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Installing bundle isp.route.TSTISP001.xml / 0.0.0
2020-05-05T09:56:01,155 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | BlueprintContainerImpl           | 49 - org.apache.aries.blueprint.core - 1.10.2 | Blueprint bundle isp.route.TSTISP001.xml/0.0.0 has been started
2020-05-05T09:56:01,155 | INFO  | Blueprint Event Dispatcher: 1 | BlueprintCamelContext            | 100 - org.apache.camel.karaf.camel-blueprint - 3.2.0 | Attempting to start CamelContext: isp.context.user.TSTISP001
2020-05-05T09:56:01,158 | INFO  | Blueprint Event Dispatcher: 1 | DefaultManagementStrategy        | 57 - org.apache.camel.camel-base - 3.2.0 | JMX is enabled
2020-05-05T09:56:01,163 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) is starting
2020-05-05T09:56:01,163 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | StreamCaching is enabled on CamelContext: isp.context.user.TSTISP001
2020-05-05T09:56:01,193 | INFO  | Blueprint Event Dispatcher: 1 | DefaultStreamCachingStrategy     | 57 - org.apache.camel.camel-base - 3.2.0 | StreamCaching in use with spool directory: /opt/apache-karaf-4.2.8/data/tmp/camel/camel-tmp-ID-ip-10-0-0-147-eu-central-1-compute-internal-1588672515655-1-1 and rules: [Spool > 128K body size]
2020-05-05T09:56:01,198 | ERROR | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Error starting CamelContext (isp.context.user.TSTISP001) due to exception thrown: STARTED
java.lang.IllegalStateException: STARTED
        at org.eclipse.jetty.server.handler.AbstractHandlerContainer.setServer(AbstractHandlerContainer.java:131) ~[!/:9.4.22.v20191022]
        at Proxy47994b98_4d05_494d_af04_51ba95ee0e4a.setServer(Unknown Source) ~[?:?]
        at org.eclipse.jetty.server.handler.HandlerCollection.updateHandlers(HandlerCollection.java:117) ~[!/:9.4.22.v20191022]
        at org.eclipse.jetty.server.handler.HandlerCollection.addHandler(HandlerCollection.java:180) ~[!/:9.4.22.v20191022]
        at org.apache.camel.component.jetty.JettyHttpComponent.addJettyHandlers(JettyHttpComponent.java:1169) ~[!/:3.2.0]
        at org.apache.camel.component.jetty.JettyHttpComponent.createServletForConnector(JettyHttpComponent.java:1127) ~[!/:3.2.0]
        at org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:332) ~[!/:3.2.0]
        at org.apache.camel.http.common.HttpCommonEndpoint.connect(HttpCommonEndpoint.java:177) ~[!/:3.2.0]
        at org.apache.camel.http.common.HttpConsumer.doStart(HttpConsumer.java:58) ~[!/:3.2.0]
        at org.apache.camel.component.jetty.JettyHttpConsumer.doStart(JettyHttpConsumer.java:31) ~[!/:3.2.0]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3056) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3394) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3325) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3230) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2992) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2790) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2643) [!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2606) [!/:3.2.0]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) [!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448) [!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:241) [!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) [!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:187) [!/:3.2.0]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) [!/:1.10.2]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) [!/:1.10.2]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
2020-05-05T09:56:01,210 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) is shutting down
2020-05-05T09:56:01,227 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) uptime 0.064 seconds
2020-05-05T09:56:01,227 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) is shutdown in 0.017 seconds
2020-05-05T09:56:01,228 | WARN  | Blueprint Event Dispatcher: 1 | BlueprintCamelStateService       | 100 - org.apache.camel.karaf.camel-blueprint - 3.2.0 | Changing Camel state for bundle 168 to Failure
2020-05-05T09:56:01,228 | ERROR | Blueprint Event Dispatcher: 1 | BlueprintCamelContext            | 100 - org.apache.camel.karaf.camel-blueprint - 3.2.0 | Error occurred during starting CamelContext: isp.context.user.TSTISP001
java.lang.IllegalStateException: STARTED
        at org.eclipse.jetty.server.handler.AbstractHandlerContainer.setServer(AbstractHandlerContainer.java:131) ~[?:?]
        at Proxy47994b98_4d05_494d_af04_51ba95ee0e4a.setServer(Unknown Source) ~[?:?]
        at org.eclipse.jetty.server.handler.HandlerCollection.updateHandlers(HandlerCollection.java:117) ~[?:?]
        at org.eclipse.jetty.server.handler.HandlerCollection.addHandler(HandlerCollection.java:180) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpComponent.addJettyHandlers(JettyHttpComponent.java:1169) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpComponent.createServletForConnector(JettyHttpComponent.java:1127) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:332) ~[?:?]
        at org.apache.camel.http.common.HttpCommonEndpoint.connect(HttpCommonEndpoint.java:177) ~[?:?]
        at org.apache.camel.http.common.HttpConsumer.doStart(HttpConsumer.java:58) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpConsumer.doStart(JettyHttpConsumer.java:31) ~[?:?]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3056) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3394) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3325) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3230) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2992) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2790) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2643) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2606) ~[!/:3.2.0]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448) ~[!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:241) ~[!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) ~[!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:187) [!/:3.2.0]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) [!/:1.10.2]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) [!/:1.10.2]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
2020-05-05T09:56:01,233 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Started bundle: blueprint:file:/opt/apache-karaf-4.2.8/deploy/isp.route.TSTISP001.xml

{code}
 

*Files for reference*

blueprint all-in-one
{code:java}
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

   <bean id="constraint_TSTISP001" class="org.eclipse.jetty.util.security.Constraint">
      <property name="name" value="BASIC" />
      <property name="authenticate" value="true" />
      <property name="roles">
         <list>
            <value>TSTISP001</value>
         </list>
      </property>
   </bean>

   <bean id="constraintMapping_TSTISP001" class="org.eclipse.jetty.security.ConstraintMapping">
      <property name="constraint" ref="constraint_TSTISP001" />
      <property name="pathSpec" value="/hello1" />
   </bean>

   <bean id="securityHandlerImpl" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
      <property name="loginService">
         <bean class="org.eclipse.jetty.security.HashLoginService">
            <property name="config" value="/opt/apache-karaf-4.2.8/etc/users.properties" />
         </bean>
      </property>
      <property name="authenticator">
         <bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
      </property>
      <property name="constraintMappings">
         <list>
            <ref component-id="constraintMapping_TSTISP001" />
         </list>
      </property>
   </bean>

   <camelContext id="isp.context.user.TSTISP001" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" useBreadcrumb="true">

      <route id="isp.route.user.TSTISP001">
         <from uri="jetty:http://0.0.0.0:8182/hello1?handlers=securityHandlerImpl" />
         <setBody><constant>Hello 1</constant></setBody>
      </route>

   </camelContext>

</blueprint>
{code}
blueprints separated
{code:java}
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

   <bean id="constraint_TSTISP001" class="org.eclipse.jetty.util.security.Constraint">
      <property name="name" value="BASIC" />
      <property name="authenticate" value="true" />
      <property name="roles">
         <list>
            <value>TSTISP001</value>
         </list>
      </property>
   </bean>

   <bean id="constraintMapping_TSTISP001" class="org.eclipse.jetty.security.ConstraintMapping">
      <property name="constraint" ref="constraint_TSTISP001" />
      <property name="pathSpec" value="/hello1" />
   </bean>

   <bean id="securityHandlerImpl" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
      <property name="loginService">
         <bean class="org.eclipse.jetty.security.HashLoginService">
            <property name="config" value="/opt/apache-karaf-4.2.8/etc/users.properties" />
         </bean>
      </property>
      <property name="authenticator">
         <bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
      </property>
      <property name="constraintMappings">
         <list>
            <ref component-id="constraintMapping_TSTISP001" />
         </list>
      </property>
   </bean>

   <service id="securityHandlerIsp" ref="securityHandlerImpl" interface="org.eclipse.jetty.server.Handler" />
</blueprint>
{code}
{code:java}
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

   <!-- set reference to the securityHandler -->
   <reference id="securityHandlerIsp" interface="org.eclipse.jetty.server.Handler" ext:proxy-method="classes" />

   <camelContext id="isp.context.user.TSTISP001" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" useBreadcrumb="true">

      <route id="isp.route.user.TSTISP001">
         <from uri="jetty:http://0.0.0.0:8182/hello1?handlers=#securityHandlerIsp" />
         <setBody><constant>Hello 1</constant></setBody>
      </route>

   </camelContext>

</blueprint>
{code}
 


was (Author: catshout):
[~davsclaus] 

 

At 1st I've done a vanilla installation of karaf 4.2.8. The deployed files for reference see at the bottom.

My etc/user.properties looks like ..

 
{code:java}
...
username1 = password1,TSTISP001
{code}
Afterwards I did execute these commands ..

 

 
{code:java}
feature:repo-add camel 3.2.0
feature:install camel camel-jetty
{code}
No error but the security handler seems to be ignored completely. The blueprint all-in-one works but the security handler is being ignored. The 2 blueprints separated show no errors during deployment, the security handler is being ignored either (means the route is working but with no auth).

 

 

At 2nd I've done again a vanilla installation of karaf 4.2.8. Same etc/user.properties.

I did execute (you may recognize additionally the webconsole feature)
{code:java}
feature:repo-add camel 3.2.0
feature:install webconsole camel camel-jetty
{code}
The blueprint all-in-one now works with authentication. The 2 blueprints separated shows the errors during deployment ..
{code:java}
2020-05-05T09:55:57,808 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Installing bundle isp.jettyHttpComponent.xml / 0.0.0
2020-05-05T09:55:57,845 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Unbinding bundle: [org.apache.karaf.webconsole.console [117]]
2020-05-05T09:55:57,850 | INFO  | paxweb-config-1-thread-2 | ContextHandler                   | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Stopped HttpServiceContext{httpContext=DefaultHttpContext [bundle=org.apache.karaf.webconsole.console [117], contextID=custom]}
2020-05-05T09:55:57,851 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Unbinding bundle: [org.apache.karaf.http.core [113]]
2020-05-05T09:55:57,856 | INFO  | activator-1-thread-3 | CommandExtension                 | 34 - org.apache.karaf.shell.core - 4.2.8 | Unregistering commands for bundle org.apache.karaf.http.core/4.2.8
2020-05-05T09:55:57,895 | INFO  | activator-1-thread-3 | HttpPlugin                       | 120 - org.apache.karaf.webconsole.http - 4.2.8 | Http plugin deactivated
2020-05-05T09:55:57,897 | INFO  | paxweb-config-1-thread-2 | AbstractConnector                | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Stopped default@4dcfa0eb{HTTP/1.1,[http/1.1]}{0.0.0.0:8181}
2020-05-05T09:55:57,897 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | node0 Stopped scavenging
2020-05-05T09:55:57,900 | INFO  | paxweb-config-1-thread-2 | Activator                        | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | ServerControllerFactory is gone, HTTP Service is not available now.
2020-05-05T09:55:57,902 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | BlueprintContainerImpl           | 49 - org.apache.aries.blueprint.core - 1.10.2 | Blueprint bundle isp.jettyHttpComponent.xml/0.0.0 has been started
2020-05-05T09:55:57,910 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Started bundle: blueprint:file:/opt/apache-karaf-4.2.8/deploy/isp.jettyHttpComponent.xml
2020-05-05T09:55:57,931 | INFO  | paxweb-config-1-thread-2 | JettyFactoryImpl                 | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | No ALPN class available
2020-05-05T09:55:57,931 | INFO  | paxweb-config-1-thread-2 | JettyFactoryImpl                 | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | HTTP/2 not available, creating standard ServerConnector for Http
2020-05-05T09:55:57,932 | INFO  | paxweb-config-1-thread-2 | JettyServerImpl                  | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | Pax Web available at [0.0.0.0]:[8181]
2020-05-05T09:55:57,936 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Binding bundle: [org.apache.karaf.http.core [113]] to http service
2020-05-05T09:55:57,941 | INFO  | paxweb-config-1-thread-2 | HttpServiceFactoryImpl           | 160 - org.ops4j.pax.web.pax-web-runtime - 7.2.14 | Binding bundle: [org.apache.karaf.webconsole.console [117]] to http service
2020-05-05T09:55:57,949 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | will add org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer to ServletContainerInitializers
2020-05-05T09:55:57,949 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | added ServletContainerInitializer: org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer
2020-05-05T09:55:57,951 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | will add org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer to ServletContainerInitializers
2020-05-05T09:55:57,964 | INFO  | activator-1-thread-4 | CommandExtension                 | 34 - org.apache.karaf.shell.core - 4.2.8 | Registering commands for bundle org.apache.karaf.http.core/4.2.8
2020-05-05T09:55:57,983 | INFO  | activator-1-thread-4 | HttpPlugin                       | 120 - org.apache.karaf.webconsole.http - 4.2.8 | Http plugin activated
2020-05-05T09:55:58,090 | INFO  | paxweb-config-1-thread-2 | ServletContainerInitializerScanner | 158 - org.ops4j.pax.web.pax-web-api - 7.2.14 | added ServletContainerInitializer: org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer
2020-05-05T09:55:58,092 | INFO  | paxweb-config-1-thread-2 | HttpServiceContext               | 159 - org.ops4j.pax.web.pax-web-jetty - 7.2.14 | registering context DefaultHttpContext [bundle=org.apache.karaf.webconsole.console [117], contextID=custom], with context-name:
2020-05-05T09:55:58,097 | INFO  | paxweb-config-1-thread-2 | WebSocketServerFactory           | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | No DecoratedObjectFactory provided, using new org.eclipse.jetty.util.DecoratedObjectFactory[decorators=1]
2020-05-05T09:55:58,101 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | DefaultSessionIdManager workerName=node0
2020-05-05T09:55:58,101 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | No SessionScavenger set, using defaults
2020-05-05T09:55:58,102 | INFO  | paxweb-config-1-thread-2 | session                          | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | node0 Scavenging every 660000ms
2020-05-05T09:55:58,110 | INFO  | paxweb-config-1-thread-2 | ContextHandler                   | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Started HttpServiceContext{httpContext=DefaultHttpContext [bundle=org.apache.karaf.webconsole.console [117], contextID=custom]}
2020-05-05T09:55:58,111 | INFO  | paxweb-config-1-thread-2 | Server                           | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | jetty-9.4.22.v20191022; built: 2019-10-22T13:37:13.455Z; git: b1e6b55512e008f7fbdf1cbea4ff8a6446d1073b; jvm 11.0.6+10-LTS
2020-05-05T09:55:58,119 | INFO  | paxweb-config-1-thread-2 | AbstractConnector                | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Started default@2db6caad{HTTP/1.1,[http/1.1]}{0.0.0.0:8181}
2020-05-05T09:55:58,119 | INFO  | paxweb-config-1-thread-2 | Server                           | 142 - org.eclipse.jetty.util - 9.4.22.v20191022 | Started @127384ms
2020-05-05T09:56:00,942 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Installing bundle isp.route.TSTISP001.xml / 0.0.0
2020-05-05T09:56:01,155 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | BlueprintContainerImpl           | 49 - org.apache.aries.blueprint.core - 1.10.2 | Blueprint bundle isp.route.TSTISP001.xml/0.0.0 has been started
2020-05-05T09:56:01,155 | INFO  | Blueprint Event Dispatcher: 1 | BlueprintCamelContext            | 100 - org.apache.camel.karaf.camel-blueprint - 3.2.0 | Attempting to start CamelContext: isp.context.user.TSTISP001
2020-05-05T09:56:01,158 | INFO  | Blueprint Event Dispatcher: 1 | DefaultManagementStrategy        | 57 - org.apache.camel.camel-base - 3.2.0 | JMX is enabled
2020-05-05T09:56:01,163 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) is starting
2020-05-05T09:56:01,163 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | StreamCaching is enabled on CamelContext: isp.context.user.TSTISP001
2020-05-05T09:56:01,193 | INFO  | Blueprint Event Dispatcher: 1 | DefaultStreamCachingStrategy     | 57 - org.apache.camel.camel-base - 3.2.0 | StreamCaching in use with spool directory: /opt/apache-karaf-4.2.8/data/tmp/camel/camel-tmp-ID-ip-10-0-0-147-eu-central-1-compute-internal-1588672515655-1-1 and rules: [Spool > 128K body size]
2020-05-05T09:56:01,198 | ERROR | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Error starting CamelContext (isp.context.user.TSTISP001) due to exception thrown: STARTED
java.lang.IllegalStateException: STARTED
        at org.eclipse.jetty.server.handler.AbstractHandlerContainer.setServer(AbstractHandlerContainer.java:131) ~[!/:9.4.22.v20191022]
        at Proxy47994b98_4d05_494d_af04_51ba95ee0e4a.setServer(Unknown Source) ~[?:?]
        at org.eclipse.jetty.server.handler.HandlerCollection.updateHandlers(HandlerCollection.java:117) ~[!/:9.4.22.v20191022]
        at org.eclipse.jetty.server.handler.HandlerCollection.addHandler(HandlerCollection.java:180) ~[!/:9.4.22.v20191022]
        at org.apache.camel.component.jetty.JettyHttpComponent.addJettyHandlers(JettyHttpComponent.java:1169) ~[!/:3.2.0]
        at org.apache.camel.component.jetty.JettyHttpComponent.createServletForConnector(JettyHttpComponent.java:1127) ~[!/:3.2.0]
        at org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:332) ~[!/:3.2.0]
        at org.apache.camel.http.common.HttpCommonEndpoint.connect(HttpCommonEndpoint.java:177) ~[!/:3.2.0]
        at org.apache.camel.http.common.HttpConsumer.doStart(HttpConsumer.java:58) ~[!/:3.2.0]
        at org.apache.camel.component.jetty.JettyHttpConsumer.doStart(JettyHttpConsumer.java:31) ~[!/:3.2.0]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3056) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3394) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3325) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3230) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2992) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2790) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2643) [!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2606) [!/:3.2.0]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) [!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448) [!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:241) [!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) [!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:187) [!/:3.2.0]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) [!/:1.10.2]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) [!/:1.10.2]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
2020-05-05T09:56:01,210 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) is shutting down
2020-05-05T09:56:01,227 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) uptime 0.064 seconds
2020-05-05T09:56:01,227 | INFO  | Blueprint Event Dispatcher: 1 | AbstractCamelContext             | 57 - org.apache.camel.camel-base - 3.2.0 | Apache Camel 3.2.0 (CamelContext: isp.context.user.TSTISP001) is shutdown in 0.017 seconds
2020-05-05T09:56:01,228 | WARN  | Blueprint Event Dispatcher: 1 | BlueprintCamelStateService       | 100 - org.apache.camel.karaf.camel-blueprint - 3.2.0 | Changing Camel state for bundle 168 to Failure
2020-05-05T09:56:01,228 | ERROR | Blueprint Event Dispatcher: 1 | BlueprintCamelContext            | 100 - org.apache.camel.karaf.camel-blueprint - 3.2.0 | Error occurred during starting CamelContext: isp.context.user.TSTISP001
java.lang.IllegalStateException: STARTED
        at org.eclipse.jetty.server.handler.AbstractHandlerContainer.setServer(AbstractHandlerContainer.java:131) ~[?:?]
        at Proxy47994b98_4d05_494d_af04_51ba95ee0e4a.setServer(Unknown Source) ~[?:?]
        at org.eclipse.jetty.server.handler.HandlerCollection.updateHandlers(HandlerCollection.java:117) ~[?:?]
        at org.eclipse.jetty.server.handler.HandlerCollection.addHandler(HandlerCollection.java:180) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpComponent.addJettyHandlers(JettyHttpComponent.java:1169) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpComponent.createServletForConnector(JettyHttpComponent.java:1127) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:332) ~[?:?]
        at org.apache.camel.http.common.HttpCommonEndpoint.connect(HttpCommonEndpoint.java:177) ~[?:?]
        at org.apache.camel.http.common.HttpConsumer.doStart(HttpConsumer.java:58) ~[?:?]
        at org.apache.camel.component.jetty.JettyHttpConsumer.doStart(JettyHttpConsumer.java:31) ~[?:?]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3056) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3394) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3325) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3230) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2992) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2790) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2643) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2606) ~[!/:3.2.0]
        at org.apache.camel.support.service.BaseService.start(BaseService.java:115) ~[!/:3.2.0]
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448) ~[!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:241) ~[!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) ~[!/:3.2.0]
        at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:187) [!/:3.2.0]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) [!/:1.10.2]
        at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) [!/:1.10.2]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
2020-05-05T09:56:01,233 | INFO  | fileinstall-/opt/apache-karaf-4.2.8/deploy | fileinstall                      | 10 - org.apache.felix.fileinstall - 3.6.4 | Started bundle: blueprint:file:/opt/apache-karaf-4.2.8/deploy/isp.route.TSTISP001.xml

{code}
*Files for reference*

blueprint all-in-one

 
{code:java}
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

   <bean id="constraint_TSTISP001" class="org.eclipse.jetty.util.security.Constraint">
      <property name="name" value="BASIC" />
      <property name="authenticate" value="true" />
      <property name="roles">
         <list>
            <value>TSTISP001</value>
         </list>
      </property>
   </bean>

   <bean id="constraintMapping_TSTISP001" class="org.eclipse.jetty.security.ConstraintMapping">
      <property name="constraint" ref="constraint_TSTISP001" />
      <property name="pathSpec" value="/hello1" />
   </bean>

   <bean id="securityHandlerImpl" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
      <property name="loginService">
         <bean class="org.eclipse.jetty.security.HashLoginService">
            <property name="config" value="/opt/apache-karaf-4.2.8/etc/users.properties" />
         </bean>
      </property>
      <property name="authenticator">
         <bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
      </property>
      <property name="constraintMappings">
         <list>
            <ref component-id="constraintMapping_TSTISP001" />
         </list>
      </property>
   </bean>

   <camelContext id="isp.context.user.TSTISP001" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" useBreadcrumb="true">

      <route id="isp.route.user.TSTISP001">
         <from uri="jetty:http://0.0.0.0:8182/hello1?handlers=securityHandlerImpl" />
         <setBody><constant>Hello 1</constant></setBody>
      </route>

   </camelContext>

</blueprint>
{code}
blueprints separated

 

 
{code:java}
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

   <bean id="constraint_TSTISP001" class="org.eclipse.jetty.util.security.Constraint">
      <property name="name" value="BASIC" />
      <property name="authenticate" value="true" />
      <property name="roles">
         <list>
            <value>TSTISP001</value>
         </list>
      </property>
   </bean>

   <bean id="constraintMapping_TSTISP001" class="org.eclipse.jetty.security.ConstraintMapping">
      <property name="constraint" ref="constraint_TSTISP001" />
      <property name="pathSpec" value="/hello1" />
   </bean>

   <bean id="securityHandlerImpl" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
      <property name="loginService">
         <bean class="org.eclipse.jetty.security.HashLoginService">
            <property name="config" value="/opt/apache-karaf-4.2.8/etc/users.properties" />
         </bean>
      </property>
      <property name="authenticator">
         <bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
      </property>
      <property name="constraintMappings">
         <list>
            <ref component-id="constraintMapping_TSTISP001" />
         </list>
      </property>
   </bean>

   <service id="securityHandlerIsp" ref="securityHandlerImpl" interface="org.eclipse.jetty.server.Handler" />
</blueprint>
{code}
{code:java}
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

   <!-- set reference to the securityHandler -->
   <reference id="securityHandlerIsp" interface="org.eclipse.jetty.server.Handler" ext:proxy-method="classes" />

   <camelContext id="isp.context.user.TSTISP001" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" useBreadcrumb="true">

      <route id="isp.route.user.TSTISP001">
         <from uri="jetty:http://0.0.0.0:8182/hello1?handlers=#securityHandlerIsp" />
         <setBody><constant>Hello 1</constant></setBody>
      </route>

   </camelContext>

</blueprint>
{code}
 

> Using a registered ConstraintSecurityHandler in another Blueprint file causes an java.lang.IllegalStateException: STARTED
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-15000
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15000
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jetty
>    Affects Versions: 3.0.1
>            Reporter: Gerald Kallas
>            Priority: Minor
>
> I've defined a Blueprint DSL file with a securityHandler configuration for multiple paths as following
> {code:java}
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
>    <bean id="constraint_TSTISP001" class="org.eclipse.jetty.util.security.Constraint">
>       <property name="name" value="BASIC" />
>       <property name="authenticate" value="true" />
>       <property name="roles">
>          <list>
>             <value>TSTISP001</value>
>          </list>
>       </property>
>    </bean>
>    <bean id="constraintMapping_TSTISP001" class="org.eclipse.jetty.security.ConstraintMapping">
>       <property name="constraint" ref="constraint_TSTISP001" />
>       <property name="pathSpec" value="/hello1" />
>    </bean>
>    <bean id="constraint_TSTISP002" class="org.eclipse.jetty.util.security.Constraint">
>       <property name="name" value="BASIC" />
>       <property name="authenticate" value="true" />
>       <property name="roles">
>          <list>
>             <value>TSTISP002</value>
>          </list>
>       </property>
>    </bean>
>    <bean id="constraintMapping_TSTISP002" class="org.eclipse.jetty.security.ConstraintMapping">
>       <property name="constraint" ref="constraint_TSTISP002" />
>       <property name="pathSpec" value="/hello2" />
>    </bean>
>    <bean id="securityHandlerImpl" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
>       <property name="loginService">
>          <bean class="org.eclipse.jetty.security.HashLoginService">
>             <property name="config" value="/opt/apache-karaf/etc/users.properties" />
>          </bean>
>       </property>
>       <property name="authenticator">
>          <bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
>       </property>
>       <property name="constraintMappings">
>          <list>
>             <ref component-id="constraintMapping_TSTISP001" />
>             <ref component-id="constraintMapping_TSTISP002" />
>          </list>
>       </property>
>    </bean>
>    <service id="securityHandlerIsp" ref="securityHandlerImpl" interface="org.eclipse.jetty.server.Handler" />
>    <sslContextParameters id="sslContextParameters" xmlns="http://camel.apache.org/schema/blueprint">
>       ...
>    </sslContextParameters>
>    <service ref="sslContextParameters" auto-export="all-classes" />
> </blueprint>
> {code}
> The use in another Blueprint DSL file as attached
> {code:java}
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
>          xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>          xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
>          xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
>    <!-- set reference to the SSLContextParameters -->
>    <reference id="sslContextParameters" interface="org.apache.camel.support.jsse.SSLContextParameters" ext:proxy-method="classes" />
>    <!-- set reference to the securityHandler -->
>    <reference id="securityHandlerIsp" interface="org.eclipse.jetty.server.Handler" />
>    <camelContext id="isp.context.user.TSTISP001" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" useBreadcrumb="true">
>       <route id="isp.route.user.TSTISP001">
>          <from uri="jetty:https://0.0.0.0:8444/hello1?sslContextParameters=#sslContextParameters&amp;handlers=securityHandlerIsp" />
>          <setBody><constant>Hello 1</constant></setBody>
>       </route>
>    </camelContext>
> </blueprint>
> {code}
> causes an error
> {code:java}
> 2020-05-02T19:15:46,202 | ERROR | Blueprint Event Dispatcher: 1 | BlueprintCamelContext            | 92 - org.apache.camel.camel-api - 3.0.0 | Error starting CamelContext (isp.context.user.TSTISP001) due to exception thrown: STARTED
> java.lang.IllegalStateException: STARTED
>         at org.eclipse.jetty.server.handler.AbstractHandlerContainer.setServer(AbstractHandlerContainer.java:131) ~[!/:9.4.20.v20190813]
>         at Proxyb4d61c20_c161_4396_a800_1fa982bbaaea.setServer(Unknown Source) ~[?:?]
>         at org.eclipse.jetty.server.handler.HandlerCollection.updateHandlers(HandlerCollection.java:117) ~[!/:9.4.20.v20190813]
>         at org.eclipse.jetty.server.handler.HandlerCollection.addHandler(HandlerCollection.java:180) ~[!/:9.4.20.v20190813]
>         at org.apache.camel.component.jetty.JettyHttpComponent.addJettyHandlers(JettyHttpComponent.java:1182) ~[!/:3.0.0]
>         at org.apache.camel.component.jetty.JettyHttpComponent.createServletForConnector(JettyHttpComponent.java:1145) ~[!/:3.0.0]
>         at org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:329) ~[!/:3.0.0]
>         at org.apache.camel.http.common.HttpCommonEndpoint.connect(HttpCommonEndpoint.java:177) ~[!/:3.0.0]
>         at org.apache.camel.http.common.HttpConsumer.doStart(HttpConsumer.java:58) ~[!/:3.0.0]
>         at org.apache.camel.component.jetty.JettyHttpConsumer.doStart(JettyHttpConsumer.java:31) ~[!/:3.0.0]
>         at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:117) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:2900) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3227) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3161) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3071) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2836) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2640) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2445) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2462) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2443) ~[!/:3.0.0]
>         at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:117) ~[!/:3.0.0]
>         at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2352) [!/:3.0.0]
>         at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:244) [!/:3.0.0]
>         at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:286) [!/:3.0.0]
>         at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:183) [!/:3.0.0]
>         at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) [!/:1.10.2]
>         at org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) [!/:1.10.2]
>         at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
>         at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
>         at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
>         at java.lang.Thread.run(Unknown Source) [?:?]
> {code}
> An approach with the definition of the securityHandler and the route in one single Blueprint DSL file is working.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)