[[_fuse_adapter_cxf_separate]] ===== Secure Apache CXF Endpoint on separate Jetty It's recommended to run your CXF endpoints secured by {{book.project.name}} on separate Jetty engine. This is the setup described in this section. * You need to add `META-INF/spring/beans.xml` to your application and then declare `httpj:engine-factory` with Jetty SecurityHandler with injected `KeycloakJettyAuthenticator` inside. The configuration may look like this for CXF JAX-WS application: [source,xml] ---- user true ---- * For the CXF JAX-RS application, the only difference might be in the configuration of the endpoint dependent on engine-factory: [source,xml] ---- ---- * The `Import-Package` in `META-INF/MANIFEST.MF` needs to contain those imports: [source, subs="attributes"] ---- META-INF.cxf;version="[2.7,3.2)", META-INF.cxf.osgi;version="[2.7,3.2)";resolution:=optional, org.apache.cxf.bus;version="[2.7,3.2)", org.apache.cxf.bus.spring;version="[2.7,3.2)", org.apache.cxf.bus.resource;version="[2.7,3.2)", org.apache.cxf.transport.http;version="[2.7,3.2)", org.apache.cxf.*;version="[2.7,3.2)", org.springframework.beans.factory.config, org.eclipse.jetty.security;version="[8,10)", org.eclipse.jetty.util.security;version="[8,10)", org.keycloak.*;version="{{book.project.version}}" ----