Andrea Cosentino created CAMEL-25578:
----------------------------------------

             Summary: camel-lra - verify participant callbacks with an optional 
shared secret
                 Key: CAMEL-25578
                 URL: https://issues.apache.org/jira/browse/CAMEL-25578
             Project: Camel
          Issue Type: Improvement
          Components: camel-lra
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.24.0, 4.18.6, 4.22.2


The LRA participant routes ({{PUT <localParticipantContextPath>/compensate}} 
and {{/complete}}) take the saga step endpoint and the saga options from the 
callback URL enlisted with the LRA coordinator.

Add an optional shared secret to the LRA saga service so the participant can 
sign the callback URLs it enlists and verify them when the coordinator calls 
back:

* new {{LRASagaService}} option, also settable as {{camel.lra.callbackSecret}}
* when set: the compensate/complete URLs carry an HMAC-SHA256 signature over 
the callback type and all query parameters; callbacks with a missing or 
mismatching signature get HTTP 403, and only the signed values are passed on to 
the step endpoint
* when not set: behaviour unchanged, plus a startup warning
* docs: the Saga EIP / LRA pages describe the participant endpoints, that they 
are meant to be reachable by the coordinator, and the new option

Follow-up: expose the option in {{camel-lra-starter}} (camel-spring-boot).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to