in callouts/java/service-callout/src/main/java/example/JwtAuth.java [185:210]
public void onRequestHeaders(ProcessingResponse.Builder processingResponseBuilder, HttpHeaders headers) {
// Validate the JWT token
Claims decoded = validateJwtToken(headers);
if (decoded != null) {
// Token is valid, add decoded items as header mutations
Map<String, String> decodedItems = new HashMap<>();
decoded.forEach((key, value) -> decodedItems.put("decoded-" + key, value.toString()));
// Assuming addHeaderMutations adds the headers and returns a HeadersResponse
ServiceCalloutTools.addHeaderMutations(
processingResponseBuilder.getRequestHeadersBuilder(),
decodedItems.entrySet(), // Headers to add
null, // No headers to remove
true, // Clear route cache
null // No append action
);
} else {
// Token is invalid, deny the request
ServiceCalloutTools.denyCallout(
processingResponseBuilder.getResponseHeadersBuilder(),
"Authorization token is invalid"
);
}
}