Andrew created CXF-5863:
---------------------------
Summary: 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: 3.0.0, 2.7.10
Environment: Apache SMX 5.0.0
Apache Camel 2.12.3
Java 1.7.0_25
Reporter: Andrew
Priority: Minor
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)