= Elytron Component (deprecated)
:doctitle: Elytron
:shortname: elytron
:artifactid: camel-elytron
:description: Elytron Security Provider for camel-undertow
:since: 3.1
:supportlevel: Stable-deprecated
:deprecated: *deprecated*
:tabs-sync-option:

*Since Camel {since}*

The Elytron Security Provider provides Elytron security over the Camel Elytron component.
It enables the Camel Elytron component to use Elytron security capabilities.
To force Camel Elytron to use elytron security provider, add the elytron security provider library
on classpath and provide instance of `ElytronSecurityConfiguration` as `securityConfiguration`
parameter into the Camel Elytron component or provide both  `securityConfiguration` and `securityProvider`
into the Camel Elytron component.

Configuration has to provide all three security attributes:

[width="100%",cols="2,5,^3",options="header"]
|===
| Name | Description | Type
| *domainBuilder* | Builder for security domain. | `SecurityDomain.Builder`
| *mechanismName* | MechanismName should be selected with regard to default securityRealm. For
example, to use bearer_token security, mechanism name has to be `BEARER_TOKEN` and realm has to be `TokenSecurityReal` | `String`
| *elytronProvider* | Instance of WildFlyElytronBaseProvider with respect of mechanismName | `WildFlyElytronBaseProvider`
|===

Each exchange created by Undertow endpoint with Elytron security contains header `securityIdentity`
with current Elytron's security identity as value.
(`org.wildfly.security.auth.server.SecurityIdentity`) or is _FORBIDDEN_ (status code 403)

Maven users will need to add the following dependency to their `pom.xml`
for this component:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-elytron</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
----

== Other Elytron capabilities

This security provider contains only basic Elytron dependencies (without any transitive dependency
from `org.wildfly.security:wildfly-elytron`).
Ignored libraries should be added among application's dependencies for their usage.
