-
Bug
-
Resolution: Done
-
Critical
-
2.14.1 GA
-
False
-
None
-
False
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
-
-
RHOAM Sprint 56, RHOAM Sprint 57
When batcher policy retrieving the reports from the cached, it will return the following error if user_key is base64 encoded.
reports_batcher.lua:99: get_all(): failed to get report for key service_id:12,user_key:ZXhhbXBsZV91c2VyX2tleQo=,metric:Hits err: credentials not found, context: ngx.timer, client: 10.10.10.1, server: 0.0.0.0:8080
The above error is due to the batcher's policy allowing only user_key contains characters
local regexes_report_key = { [[service_id:(?<service_id>[\w-]+),user_key:(?<user_key>[\S-]+),metric:(?<metric>[\S-]+)]], [[service_id:(?<service_id>[\w-]+),access_token:(?<access_token>[\w-]+),metric:(?<metric>[\S-]+)]], [[service_id:(?<service_id>[\w-]+),app_id:(?<app_id>[\w-]+),app_key:(?<app_key>[\w-]+),metric:(?<metric>[\S-]+)]], [[service_id:(?<service_id>[\w-]+),app_id:(?<app_id>[\w-]+),metric:(?<metric>[\S-]+)]], }
The side effect of this is that shared memory will fill up over time due to batcher_policy not being able to send and delete old reports.
Allowed user_key and app_key format
User_key
Allowed characters: [A-Z a-z 0-9 - _ .], or Base64 format without forward slash (/), no spaces and up to 256 characters.
App_key
Allowed characters: [A-Z a-z 0-9 ! " # $ % & ' ( ) * + , - . : ; < = > ? @ [ ] ^ _ ` { | } ~], no spaces and between 5 and 255 characters.
Regrex from porta code
user_key
# letter, number, underscore (_), hyphen-minus (-), dot (.), base64 format # In base64 encoding, the character set is [A-Z,a-z,0-9,and + /], if rest length is less than 4, fill of '=' character. # ^([A-Za-z0-9+/]{4})* means the String start with 0 time or more base64 group. # ([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==) means the String must end of 3 forms in [A-Za-z0-9+/]{4} or [A-Za-z0-9+/]{3}= or [A-Za-z0-9+/]{2}== # matches also the non 64B case with (\A[\w\-\.]+\Z) USER_KEY_FORMAT = /(([\w\-\.]+)|([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==))/
app_key
# The following characters are accepted: # A-Z a-z 0-9 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ # Spaces are not allowed validates :value, format: { with: /\A[\x21-\x7E]+\Z/ }, length: { within: 5..255 }, uniqueness: { scope: :application_id, case_sensitive: false }
- links to
-
RHEA-2024:129854 Release of apicast-operator 0.12.1mas for RHOAM - Containers
- mentioned on