@@ -52,7 +52,7 @@ class ModuleUtils():
5252 "auth" : r"^.+$" ,
5353 "sessionid" : r"^.+$" ,
5454 "password" : r"^.+$" ,
55- "result" : r"^(?!(zabbix_export|[0-9.]{5}))[ A-Za-z0-9]+ $" ,
55+ "result" : r"^[ A-Za-z0-9]{32} $" ,
5656 }
5757
5858 @classmethod
@@ -116,14 +116,38 @@ def hide_private(cls, input_data: dict, fields: dict = None) -> dict:
116116 def gen_repl (match : Match ):
117117 return cls .mask_secret (match .group (0 ))
118118
119+ def hide_str (k , v ):
120+ return re .sub (private_fields [k ], gen_repl , v )
121+
122+ def hide_dict (v ):
123+ return cls .hide_private (v )
124+
125+ def hide_list (v ):
126+ result = []
127+ for item in v :
128+ if isinstance (item , dict ):
129+ result .append (hide_dict (item ))
130+ continue
131+ if isinstance (item , list ):
132+ result .append (hide_list (item ))
133+ continue
134+ if isinstance (item , str ):
135+ if 'result' in private_fields :
136+ result .append (hide_str ('result' , item ))
137+ continue
138+ result .append (item )
139+ return result
140+
119141 result_data = input_data .copy ()
120142
121143 for key , value in result_data .items ():
122144 if isinstance (value , str ):
123145 if key in private_fields :
124- result_data [key ] = re . sub ( private_fields [ key ], gen_repl , value )
146+ result_data [key ] = hide_str ( key , value )
125147 if isinstance (value , dict ):
126- result_data [key ] = cls .hide_private (value )
148+ result_data [key ] = hide_dict (value )
149+ if isinstance (value , list ):
150+ result_data [key ] = hide_list (value )
127151
128152 return result_data
129153
0 commit comments