PingAuthorize

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

  1. In the PingAuthorize server distribution, copy the symphonic-camel-pdp-<version>.jar file from resource/camel to the lib folder.

  2. In the Policy Editor distribution, copy the symphonic-camel-pap-<version>.jar file from resource/camel to the admin-point-application/lib folder.

  3. 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 to enabledFeatures in the config/configuration.yml file.

      enabledFeatures:
      - "test-suite"
      - "entity-dependents"
      - "camel-service"
  4. 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

Screen capture of the Camel service 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.