Andrea Cosentino created CAMEL-24645:
----------------------------------------

             Summary: camel-opa - cover the bearerToken option with an 
integration test
                 Key: CAMEL-24645
                 URL: https://issues.apache.org/jira/browse/CAMEL-24645
             Project: Camel
          Issue Type: Test
            Reporter: Andrea Cosentino


h2. Problem

{{camel-opa}} (CAMEL-24634) exposes a {{bearerToken}} option for an OPA server 
that has its API authentication enabled. It is wired through 
{{OpaPolicyEvaluator.createClient}}:

{code:java}
if (ObjectHelper.isNotEmpty(bearerToken)) {
    return new OPAClient(serverUrl, Map.of("Authorization", "Bearer " + 
bearerToken));
}
return new OPAClient(serverUrl);
{code}

No test exercises it. The unit tests all inject a mocked {{OPAClient}}, which 
bypasses {{createClient}} entirely, and {{OpaIT}} runs an unauthenticated OPA 
container. So nothing verifies that the token actually reaches the server as an 
{{Authorization}} header.

This is a security-relevant option - if it silently failed to be applied, a 
deployment would believe it was authenticating to its policy decision point 
when it was not.

h2. Proposal

Extend {{OpaIT}} (or add a sibling IT) with a case that starts OPA with token 
authentication enabled and asserts both directions:

* a request carrying the configured {{bearerToken}} is authorized and returns a 
decision;
* a request without it, or with the wrong token, is rejected - and the 
component fails closed on that rejection rather than treating it as a deny.

OPA is started with {{--authentication=token}} plus an authorization policy 
over {{input.identity}}. The existing {{camel-test-infra-opa}} service starts a 
plain server, so this likely needs either a second container configuration or a 
parameter on the local container service.

h2. Scope

{{main}} only. Test-only change.




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

Reply via email to