Enabling Camel service connections
If your PingAuthorize implementation relies on Apache Camel, you can enable Camel for both embedded and external policy decision point (PDP) modes.
Before you begin
You must install the Policy Editor and the PingAuthorize server before enabling Camel services.
About this task
To ensure that Camel is used with appropriate permissions and security controls, Camel services are disabled by default in the Policy Editor. Starting with version 10.0, you can use Camel version 3.21.2. Learn how to upgrade PingAuthorize versions 9.3 and earlier using Camel 2.x in the Apache Camel 2.x to 3.0 migration guide.
If you upgrade an existing installation of PingAuthorize to version 9.3.0.0 or later, and the earlier version was configured in embedded PPD mode with a deployment package containing Camel services, the upgraded PingAuthorize server will fail to start. The following steps also resolve this issue: |
Steps
-
In the PingAuthorize server distribution, copy the
symphonic-camel-pdp-<version>.jar
file fromresource/camel
to thelib
folder. -
In the Policy Editor distribution, copy the
symphonic-camel-pap-<version>.jar
file fromresource/camel
to theadmin-point-application/lib
folder. -
Enable the Camel service.
Choose from:
-
Run
setup
in non-interactive mode using the--enableCamelService
argument.$ bin/setup demo \ --adminUsername admin \ --generateSelfSignedCertificate \ --decisionPointSharedSecret pingauthorize \ --hostname <pap-hostname> \ --port <pap-port> \ --adminPort <admin-port> \ --licenseKeyFile <path-to-license> \ --optionsFile my-options.yml \ --enableCamelService
This choice will override the existing configuration.
-
In your Policy Editor distribution, add the
- "camel-service"
flag toenabledFeatures
in theconfig/configuration.yml
file.enabledFeatures: - "test-suite" - "entity-dependents" - "camel-service"
-
-
Save your changes and restart the Policy Editor.
Result
Camel service connections are enabled in both external and embedded PDP modes.
Camel services
You can retrieve information from any endpoint that the Apache Camel enterprise integration platform supports. The list of Camel components in the Camel documentation provides the full list of supported systems.
Configure Camel components by using a combination of URI, Headers, Body, and Configurationsettings. The appropriate values to provide for each setting depend on the component being used.
You can make requests dynamic by interpolating attribute values into different parameters. Learn more in Attribute interpolation.
Camel settings
Setting | Description |
---|---|
URI |
The identifier for the Camel endpoint. PingAuthorize can interpolate attribute values into this field. |
Headers |
Additional information to send with the Camel service request. PingAuthorize can interpolate attribute values into this field. |
Body |
The body to send with the Camel service request. PingAuthorize can interpolate attribute values into this field. |
Configuration |
Some Camel components require you to configure helper components for them to work. specify these components by using the Groovy scripting language to write a Spring Bean configuration block. Learn more about writing configurations In Class GroovyBeanDefinitionReader. PingAuthorize cannot interpolate attributes into this field. |
The Camel JDBC component uses the Headers and Body settings and requires a JDBC data source to be set up in the Configuration setting. |
Value processors
You can define value processors to transform data returned by the Camel service. Learn more in Processors.