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

Andrew commented on CXF-5863:
-----------------------------

Yeah, that's what I had assumed. As I said, if there's no easy way to support 
this, I would very much appreciate a warning message or exception or something, 
so people don't waste too much time trying to make it work when it's not 
actually supported.

Thanks for looking into this, anyway :)

> JettyHTTPServerEngineFactoryHolder does not support Handlers
> ------------------------------------------------------------
>
>                 Key: CXF-5863
>                 URL: https://issues.apache.org/jira/browse/CXF-5863
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.7.10, 3.0.0
>         Environment: Apache SMX 5.0.0
> Apache Camel 2.12.3
> Java 1.7.0_25
>            Reporter: Andrew
>            Assignee: Willem Jiang
>            Priority: Minor
>              Labels: blueprint, jetty
>
> I've been trying to add basic authentication to my CXF Web Service (using 
> Apache Camel 2.12.3 and SMX 5.0.0), and I had hoped that I would be able to 
> use the {{http://cxf.apache.org/transports/http-jetty/configuration}} 
> namespace to configure it, with the following in my blueprint file:
> {code:xml}
> <httpj:engine-factory bus="cxf"> 
>     <httpj:engine port="${fromCxfEndpointUri.port}"> 
>         <httpj:handlers> 
>             <!-- BASIC AUTHENTICATION configuration --> 
>             <ref bean="securityHandler"/>
>         </httpj:handlers> 
>     </httpj:engine> 
> </httpj:engine-factory>
> <bean id="securityHandler" 
> class="org.eclipse.jetty.security.ConstraintSecurityHandler">
> .
> .
> .
> </bean>
> {code}
> But as it turns out, that's not possible - I was unable to get it to 
> recognise the handler - nothing I could do would make SMX recognise that 
> element (I had tried with an invalid bean id, in the hope that it would raise 
> an error, but it never did). In addition to {{<ref 
> bean="securityHandler"/>}}, I also tried {{<ref 
> component-id="securityHandler"/>}}, but to no avail.
> After hunting around for some time, I eventually found the following in 
> {{org.apache.cxf.transport.http_jetty.blueprint.JettyHTTPServerEngineFactoryHolder}}:
> {code:java}
> if (engine.isContinuationsEnabled() != null) {
>     eng.setContinuationsEnabled(engine.isContinuationsEnabled());
> }
> // eng.setHandlers(engine.getHandlers());
> if (engine.getHost() != null && !StringUtils.isEmpty(engine.getHost())) {
>     eng.setHost(engine.getHost());
> }
> {code}
> Note, particularly, the line {{// eng.setHandlers(engine.getHandlers());}} 
> (line 119) - it never actually adds the handlers.
> Now, I don't imagine the solution is as simple as just uncommenting that 
> line, but it would be really nice if we could have one of the following:
> # Handler support implemented
> # An exception to be thrown if handlers are detected, saying they're not 
> supported
> # A warning / error message logged if handlers are detected, saying they're 
> not supported.
> It's a bit frustrating, as _everything else_ seemed to work, so I was a bit 
> perplexed as to why this one thing didn't. Unfortunately, I don't have the 
> time (or the knowledge, frankly) to fix this myself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to