[[_fuse7_adapter_camel]] ===== Securing an Apache Camel Application You can secure Apache Camel endpoints implemented with the https://camel.apache.org/components/next/undertow-component.html[camel-undertow] component by injecting the proper security constraints via blueprint and updating the used component to `undertow-keycloak`. You have to add the `OSGI-INF/blueprint/blueprint.xml` file to your Camel application with a similar configuration as below. The roles, security constraint mappings, and adapter configuration might differ slightly depending on your environment and needs. Compared to the standard `undertow` component, `undertow-keycloak` component adds two new properties: - `configResolver` is a resolver bean that supplies {project_name} adapter configuration. Available resolvers are listed in <<_fuse7_config_external_adapter,Configuration Resolvers>> section. - `allowedRoles` is a comma-separated list of roles. User accessing the service has to have at least one role to be permitted the access. For example: [source,xml] ---- ---- * The `Import-Package` in `META-INF/MANIFEST.MF` needs to contain these imports: [source, subs="attributes"] ---- javax.servlet;version="[3,4)", javax.servlet.http;version="[3,4)", javax.net.ssl, org.apache.camel.*, org.apache.camel;version="[2.13,3)", io.undertow.*, org.keycloak.*;version="{project_versionMvn}", org.osgi.service.blueprint, org.osgi.service.blueprint.container ---- ===== Camel RestDSL Camel RestDSL is a Camel feature used to define your REST endpoints in a fluent way. But you must still use specific implementation classes and provide instructions on how to integrate with {project_name}. The way to configure the integration mechanism depends on the Camel component for which you configure your RestDSL-defined routes. The following example shows how to configure integration using the `undertow-keycloak` component, with references to some of the beans defined in previous Blueprint example. [source,xml] ---- Hello rest service Just a hello (__This second sentence is returned from a Camel RestDSL endpoint__) ----