This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch keycloak-introspection in repository https://gitbox.apache.org/repos/asf/camel-jbang-examples.git
commit 11f6db04274ae2619fc16c743e0020c1c10205c1 Author: Andrea Cosentino <[email protected]> AuthorDate: Tue Oct 21 12:08:31 2025 +0200 Improved Error Handling in keycloak security rest example Signed-off-by: Andrea Cosentino <[email protected]> --- edi-x12-as2/camel/edi-x12-as2.camel.yaml | 2 +- keycloak-security-rest/rest-api.camel.yaml | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/edi-x12-as2/camel/edi-x12-as2.camel.yaml b/edi-x12-as2/camel/edi-x12-as2.camel.yaml index 36a4eaa..5dce04d 100644 --- a/edi-x12-as2/camel/edi-x12-as2.camel.yaml +++ b/edi-x12-as2/camel/edi-x12-as2.camel.yaml @@ -112,4 +112,4 @@ - to: uri: "http://{{tracker.address}}" parameters: - httpMethod: POST \ No newline at end of file + httpMethod: POST diff --git a/keycloak-security-rest/rest-api.camel.yaml b/keycloak-security-rest/rest-api.camel.yaml index 83a05a0..55c1714 100644 --- a/keycloak-security-rest/rest-api.camel.yaml +++ b/keycloak-security-rest/rest-api.camel.yaml @@ -17,6 +17,31 @@ # camel-k: dependency=camel:keycloak +# Global exception handler for authorization failures +# Handles CamelAuthorizationException to return proper HTTP status codes +- onException: + exception: + - "org.apache.camel.CamelAuthorizationException" + handled: + constant: true + steps: + - setHeader: + name: CamelHttpResponseCode + constant: 403 + - setHeader: + name: Content-Type + constant: application/json + - setBody: + simple: | + { + "error": "Forbidden", + "message": "Access denied. ${exception.message}", + "timestamp": "${date:now:yyyy-MM-dd'T'HH:mm:ss}", + "status": 403 + } + - log: + message: "Authorization failed: ${exception.message}" + # Bean definition for Keycloak security policy - beans: - name: keycloakPolicy
