From 322bdffea9b547cb356358f0e8283bf057a56b9a Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Wed, 13 Apr 2022 14:10:09 +0800 Subject: [PATCH] fix: bad api path 404 response --- apps/emqx_dashboard/src/emqx_dashboard.erl | 1 + .../src/emqx_dashboard_bad_api.erl | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl diff --git a/apps/emqx_dashboard/src/emqx_dashboard.erl b/apps/emqx_dashboard/src/emqx_dashboard.erl index a0b733d33..513d7ff50 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard.erl @@ -61,6 +61,7 @@ start_listeners(Listeners) -> }}}, Dispatch = [ {"/", cowboy_static, {priv_file, emqx_dashboard, "www/index.html"}} , {"/static/[...]", cowboy_static, {priv_dir, emqx_dashboard, "www/static"}} + , {?BASE_PATH ++ "/[...]", emqx_dashboard_bad_api, []} , {'_', cowboy_static, {priv_file, emqx_dashboard, "www/index.html"}} ], BaseMinirest = #{ diff --git a/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl b/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl new file mode 100644 index 000000000..3121174a7 --- /dev/null +++ b/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl @@ -0,0 +1,29 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2020-2022 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-module(emqx_dashboard_bad_api). + +-include_lib("emqx/include/logger.hrl"). + +-export([init/2]). + +init(Req0, State) -> + ?SLOG(warning, #{msg => "unexpected_api_access", request => Req0}), + Req = cowboy_req:reply(404, + #{<<"content-type">> => <<"application/json">>}, + <<"{\"code\": \"API_NOT_EXIST\", \"message\": \"Request Path Not Found\"}">>, + Req0), + {ok, Req, State}.