From 853a545350c4ab3d56f67e7b7904b9d8ee768fe4 Mon Sep 17 00:00:00 2001 From: Christina Date: Thu, 9 Jan 2025 15:39:46 +0100 Subject: [PATCH] Add better error handling and message for exchange access refuse --- src/lavinmq/http/handler/error_handler.cr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lavinmq/http/handler/error_handler.cr b/src/lavinmq/http/handler/error_handler.cr index c7d68dea04..b17ec9f898 100644 --- a/src/lavinmq/http/handler/error_handler.cr +++ b/src/lavinmq/http/handler/error_handler.cr @@ -18,6 +18,10 @@ module LavinMQ Log.info { "method=#{context.request.method} path=#{context.request.path} status=#{context.response.status_code} message=\"#{ex.message}\"" } rescue ex : IO::Error | ::HTTP::Server::ClientError Log.info { "method=#{context.request.method} path=#{context.request.path} error=\"#{ex.inspect}\"" } + rescue ex : LavinMQ::Exchange::AccessRefused + Log.error { "method=#{context.request.method} path=#{context.request.path} status=403 error=#{ex.inspect_with_backtrace}" } + context.response.status_code = 403 + {error: "access_refused", reason: "Access Refused"}.to_json(context.response) rescue ex : Exception Log.error { "method=#{context.request.method} path=#{context.request.path} status=500 error=#{ex.inspect_with_backtrace}" } context.response.status_code = 500