Andrea Cosentino created CAMEL-23461:
----------------------------------------

             Summary: Camel-AWS-Bedrock: applyGuardrail reads guardrail 
identifier from wrong header
                 Key: CAMEL-23461
                 URL: https://issues.apache.org/jira/browse/CAMEL-23461
             Project: Camel
          Issue Type: Bug
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino


The {{applyGuardrail}} operation in {{BedrockProducer}} reads the guardrail 
identifier from the {{GUARDRAIL_CONFIG}} header as a {{String}}:

{code:java}
String guardrailIdentifier = 
exchange.getMessage().getHeader(BedrockConstants.GUARDRAIL_CONFIG, 
String.class);
{code}

However, {{GUARDRAIL_CONFIG}} is documented in {{BedrockConstants}} as a 
{{GuardrailConfiguration}} (used by the {{converse}} and {{converseStream}} 
operations). When a route uses both {{converse}} and {{applyGuardrail}}, 
setting one header type collides with the other and the cast silently produces 
{{null}}.

*Files:*
* 
{{components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockProducer.java:809}}
* 
{{components/camel-aws/camel-aws-bedrock/src/main/java/org/apache/camel/component/aws2/bedrock/runtime/BedrockConstants.java:57}}

*Suggested fix:*
* Add a new constant {{GUARDRAIL_IDENTIFIER}} (typed {{String}}) for 
{{applyGuardrail}}.
* Read the {{applyGuardrail}} identifier from {{GUARDRAIL_IDENTIFIER}} rather 
than {{GUARDRAIL_CONFIG}}.
* Keep {{GUARDRAIL_CONFIG}} as {{GuardrailConfiguration}} for converse 
operations.


----
_Filed by Claude Code on behalf of Andrea Cosentino._



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

Reply via email to