diff --git a/CHANGES_NEXT_RELEASE b/CHANGES_NEXT_RELEASE index 0c8dcd255b..f65bd57a35 100644 --- a/CHANGES_NEXT_RELEASE +++ b/CHANGES_NEXT_RELEASE @@ -6,6 +6,7 @@ - Fix: improve error traces (#4387) - Add: CLI parameter -dbUri / env var ORION_MONGO_URI (#3794) - Fix: improve logs in MongoDB query logic +- Fix: false positive in log deprecation logic when entity name (or other literal) includes the token "v1" (#4454) - Upgrade Debian version from 11.6 to 12.1 in Dockerfile - Hardening: upgrade libmongoc dependency from 1.23.1 to 1.24.3 - Reference MongoDB version changed from 4.4 to 6.0 diff --git a/src/lib/common/logTracing.cpp b/src/lib/common/logTracing.cpp index 26904d5628..41539e2907 100644 --- a/src/lib/common/logTracing.cpp +++ b/src/lib/common/logTracing.cpp @@ -37,7 +37,7 @@ */ inline bool isNgsiV1Url(const char* url) { - return (strstr(url, "v1") || strcasestr(url, "ngsi10") || strcasestr(url, "ngsi9")); + return (strstr(url, "/v1/") || strcasestr(url, "/ngsi10/") || strcasestr(url, "/ngsi9/")); } diff --git a/test/functionalTest/cases/4454_false_positive_in_log_deprecation_logic/false_positive_in_log_deprecation_logic.test b/test/functionalTest/cases/4454_false_positive_in_log_deprecation_logic/false_positive_in_log_deprecation_logic.test new file mode 100644 index 0000000000..8a6212d562 --- /dev/null +++ b/test/functionalTest/cases/4454_false_positive_in_log_deprecation_logic/false_positive_in_log_deprecation_logic.test @@ -0,0 +1,98 @@ +# Copyright 2023 Telefonica Investigacion y Desarrollo, S.A.U +# +# This file is part of Orion Context Broker. +# +# Orion Context Broker is free software: you can redistribute it and/or +# modify it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# Orion Context Broker is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +# General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Orion Context Broker. If not, see http://www.gnu.org/licenses/. +# +# For those usages not covered by this license please contact with +# iot_support at tid dot es + +# VALGRIND_READY - to mark the test ready for valgrindTestSuite.sh + +--NAME-- +Disable NGSIv1 CLI + +--SHELL-INIT-- +dbInit CB +brokerStart CB 0 IPV4 -logDeprecate + +--SHELL-- + +# +# 01. GET /v2/entities/glory_ev1 +# 02. GET /v1/contextEntities/glory_ev2/attributes/A +# 03. Get WARNING trace in logs corresponding only to the second case +# + +echo "01. GET /v2/entities/glory_ev1" +echo "==============================" +orionCurl --url /v2/entities/glory_ev1 +echo +echo + + +echo "02. GET /v1/contextEntities/glory_ev2/attributes/A" +echo "==================================================" +orionCurl --url /v1/contextEntities/glory_ev2/attributes/A +echo +echo + + +echo "03. Get WARNING trace in logs corresponding only to the second case" +echo "===================================================================" +cat /tmp/contextBroker.log | grep 'WARN' | awk -F 'msg=' '{print $2}' +echo +echo + + +--REGEXPECT-- +01. GET /v2/entities/glory_ev1 +============================== +HTTP/1.1 404 Not Found +Date: REGEX(.*) +Fiware-Correlator: REGEX([0-9a-f\-]{36}) +Content-Type: application/json +Content-Length: 95 + +{ + "description": "The requested entity has not been found. Check type and id", + "error": "NotFound" +} + + +02. GET /v1/contextEntities/glory_ev2/attributes/A +================================================== +HTTP/1.1 200 OK +Date: REGEX(.*) +Fiware-Correlator: REGEX([0-9a-f\-]{36}) +Content-Type: application/json +Content-Length: 106 + +{ + "statusCode": { + "code": "404", + "details": "Entity id: /glory_ev2/", + "reasonPhrase": "No context element found" + } +} + + +03. Get WARNING trace in logs corresponding only to the second case +=================================================================== +Deprecated NGSIv1 request received: GET /v1/contextEntities/glory_ev2/attributes/A, response code: 200 + + +--TEARDOWN-- +brokerStop CB +dbDrop CB