oscerd commented on PR #26974:
URL: https://github.com/apache/camel/pull/26974#issuecomment-5887757480

   Both addressed. The inline finding was a real hole, and it was in the fix 
from the previous round rather than in the original code — thanks for not 
letting it pass as done.
   
   **`OpenFgaProducer` — configured tuple decided from the evaluated values.** 
Confirmed, including the mechanism. I checked what Simple actually yields:
   
   ```
   ${header.u}       -> null
   user:${header.u}  -> "user:"
   ```
   
   A bare header expression with the header absent evaluates to `null`, not to 
an empty string. So with 
`user=${header.u}&relation=${header.r}&object=${header.o}` and no such headers, 
all three parts came back null, the guard read that as "nothing configured", 
and `resolveTuples` went on to read the body — reinstating exactly the override 
the previous change was meant to close. It only held up where a literal prefix 
(`user:${...}`) made the value non-empty, which is why the existing tests 
missed it.
   
   `OpenFgaAuthorizer.hasConfiguredTuple()` now answers from the compiled 
expressions, so the question is asked of the configuration as written rather 
than of this exchange's values. A part that is configured but resolves to 
nothing is rejected naming that part, with a message that states the rule 
outright — "a configured tuple is never completed from the message body" — 
rather than the generic malformed-identifier text, since the cause and the 
remedy are different. New test drives it with all-header expressions and no 
headers and asserts `writeTuples` is never called.
   
   **Nit:** the three blank lines before `=== Authentication and TLS` are gone; 
they were left by the `consistency` paragraph I added last round.
   
   93 unit tests and 12 ITs pass, the branch is rebased on current `main`, and 
a full reactor leaves `git status` clean. The PR still deletes nothing outside 
its own new files.
   
   One process note, since it affects how this PR should be gated. GitHub now 
reports `reviewDecision: APPROVED` with `mergeStateStatus: CLEAN` and green CI, 
but this approval carries `_Claude Code on behalf of davsclaus_` and the 
AI-agent disclaimer, as does each of @gnodet-bot's. By the project's 
AI-attribution convention that means the PR still has no human approval, so I 
am not treating the green state as mergeable and I have asked the automation 
not to either. Worth noting that the same review both approved the PR and 
reported the authorization gap above — acting on the approval alone would have 
shipped it.
   
   ---
   
   _Claude Code on behalf of @oscerd_
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to