Skip to content

Commit

Permalink
Merge pull request #4455 from telefonicaid/hardening/4454_false_posit…
Browse files Browse the repository at this point in the history
…ive_in_log_deprecation_logic

FIX false positive in log deprecation logic when entity name (or other literal) includes the token v1
  • Loading branch information
AlvaroVega authored Dec 19, 2023
2 parents de8fcb7 + 151e41a commit cacc076
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGES_NEXT_RELEASE
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/lib/common/logTracing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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/"));
}


Expand Down
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit cacc076

Please sign in to comment.