175 map sensitive key value masked

This commit is contained in:
2025-11-21 13:23:22 +03:00
parent 8f5c0a472e
commit 66248c2081
2 changed files with 18 additions and 2 deletions
+1 -1
View File
@@ -51,7 +51,7 @@
//variables.framework.docs={};
variables.framework.docs.APIName="svc-api";
variables.framework.docs.APIVersion="0.174"; /*$ git config --global --unset user.password*/
variables.framework.docs.APIVersion="0.175"; /*$ git config --global --unset user.password*/
variables.framework.globalHeaders = structNew();
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
+17 -1
View File
@@ -290,12 +290,21 @@
<!--- ---------------------------------------------------------------------------------- --->
<!--- маскируем секреты *** это не очень похоже на то же самое в списке, там мы просто удаляем параметры --->
<!--- *** подгоняем запрос под структуру из instance_operation_cfs_param --->
<cfquery name="local.qCfsParam" result="local.result">
select
p.svc_operation_cfs_param
,p.svc_operation_cfs_param_id
,p.label
,p.descr
,p.is_sensitive
,p.data_type
,null as data_descriptor
,(select instance_operation_cfs_param_uid from instance_operation_cfs_param iop
join svc_operation_cfs_param sop on (iop.svc_operation_cfs_param_id=sop.svc_operation_cfs_param_id)
join instance_operation io on (iop.instance_operation_uid=io.instance_operation_uid)
where sop.svc_operation_cfs_param_id=p.svc_operation_cfs_param_id AND
io.instance_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceUid#" null=#!isValid('guid',arguments.instanceUid)#/>)
from svc_operation_cfs_param p
join svc_operation o on (p.svc_operation_id=o.svc_operation_id)
join svc on (o.svc_id=svc.svc_id)
@@ -303,6 +312,7 @@
AND o.operation='create'
</cfquery>
<!--- *** сделано не так, как в instance_operation_cfs_param (а там тоже сделано так себе) --->
<cfset local.params = structNew("linked")/>
<cftry>
<cfset local.params=deserializeJson(local.qCurrentState.params)/>
@@ -312,9 +322,15 @@
<!--- маскируем секреты --->
<cfif local.qCfsParam.is_sensitive>
<cfset local.params[paramName]="********"/>
<cfelseif local.qCfsParam.data_type EQ "map"><!--- Не разбираем вариант "sensitive map" --->
<!--- <cfset processMap(local.qCfsParam)/> ---><!--- query passed by reference --->
<!--- маскируем секреты в map --->
<!--- *** сделано ненадежно, с расчетом на структуру qCfsParam (ради этого ее пришлось дополнить) --->
<cfset CreateObject("component", "instance_operation_cfs_param").processMap(local.qCfsParam)/>
</cfif>
</cfif>
</cfif>
</cfloop>
<!--- грубо и цинично патчим запрос --->
<cfset local.qCurrentState.params = serializeJson(local.params)/>
<cfcatch type="ANY"><!--- *** <cfrethrow/>---></cfcatch>