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={};
variables.framework.docs.APIName="svc-api"; 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 = structNew();
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location"; 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"> <cfquery name="local.qCfsParam" result="local.result">
select select
p.svc_operation_cfs_param p.svc_operation_cfs_param
,p.svc_operation_cfs_param_id
,p.label ,p.label
,p.descr ,p.descr
,p.is_sensitive ,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 from svc_operation_cfs_param p
join svc_operation o on (p.svc_operation_id=o.svc_operation_id) join svc_operation o on (p.svc_operation_id=o.svc_operation_id)
join svc on (o.svc_id=svc.svc_id) join svc on (o.svc_id=svc.svc_id)
@@ -303,6 +312,7 @@
AND o.operation='create' AND o.operation='create'
</cfquery> </cfquery>
<!--- *** сделано не так, как в instance_operation_cfs_param (а там тоже сделано так себе) --->
<cfset local.params = structNew("linked")/> <cfset local.params = structNew("linked")/>
<cftry> <cftry>
<cfset local.params=deserializeJson(local.qCurrentState.params)/> <cfset local.params=deserializeJson(local.qCurrentState.params)/>
@@ -312,9 +322,15 @@
<!--- маскируем секреты ---> <!--- маскируем секреты --->
<cfif local.qCfsParam.is_sensitive> <cfif local.qCfsParam.is_sensitive>
<cfset local.params[paramName]="********"/> <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> </cfif>
</cfloop> </cfloop>
<!--- грубо и цинично патчим запрос ---> <!--- грубо и цинично патчим запрос --->
<cfset local.qCurrentState.params = serializeJson(local.params)/> <cfset local.qCurrentState.params = serializeJson(local.params)/>
<cfcatch type="ANY"><!--- *** <cfrethrow/>---></cfcatch> <cfcatch type="ANY"><!--- *** <cfrethrow/>---></cfcatch>