cleanup: удалены закомментированные фрагменты кода (104 блока в 14 файлах)

This commit is contained in:
“Naeel”
2026-05-19 17:37:36 +04:00
parent e3a9593ba4
commit eb0f2f178b
14 changed files with 26 additions and 788 deletions
+1 -62
View File
@@ -1,41 +1,21 @@
<cfcomponent extends="taffy.core.resource" taffy:uri="/instances/{instanceUid}/vault/{secretName}" hint="getting secrets from the vault">
<cfsilent>
<cfimport prefix="m" taglib="../lib"/>
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
</cfsilent>
<cffunction name="get" hint="Получить секрет">
<cfargument name="instanceUid" type="string" required=true hint="type:UUID"/>
<cfargument name="secretName" type="string" required=true hint="type:string"/>
<!--- <cfargument name="usrId" type="string" hint="type:integer; no need to provide this argument in request, it is injected by IAM"/> --->
<!--- arguments.usrId неявно вбрасывается из Application.cfm --->
<cftry>
<cfset this.helper.validateField(arguments, "instanceUid", "guid")/>
<cfcatch type="invalidParamValue">
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
</cfcatch>
</cftry>
<cfset var local={}/>
<cfset local.vaultData={}/>
<!--- <cfset logVaultAccess(
"#request.iam_service_url#/events",
request.auth_header,
request.stand,
arguments.instanceUid,
arguments.secretName,
"",
arguments.login,
arguments.clientID,
arguments.usrId,
arguments.contragentId,
arguments.isImpersonated)/> --->
<!--- *** Добавить проверку, что секрет перечислен в fields - стало быть, доступен пользователю --->
<!--- тут необходимо проконтролировать, что мы смотрим не чужие данные --->
<!--- в других местах мы молча возврашаем пустой резалтсет на запрос чужих данных --->
<!--- варианты: 403, 404, пустой набор данных --->
@@ -59,16 +39,12 @@
order by st.version desc
limit 1
</cfquery>
<cfif local.qCurrentState.recordCount EQ 0>
<cfreturn representationOf("Cannot find instance current state or no permission to view").withStatus(404)/>
</cfif>
<cfif len(local.qCurrentState.instance_data) EQ 0>
<cfreturn representationOf("Instance current state is empty").withStatus(404)/>
</cfif>
<!--- <cfdump var=#local.qCurrentState#/><cfabort/> --->
<cfset var vaultUrl=""/>
<cftry>
<cfset var instanceData=#deserializeJson(local.qCurrentState.instance_data)#/>
@@ -82,7 +58,6 @@
<cfelse>
<cfreturn representationOf("Instance data do not contain vault url").withStatus(422)/>
</cfif>
<cfhttp method="post"
url="#request.vault_login_url#"
timeout="3"
@@ -92,14 +67,11 @@
<cfhttpparam type="HEADER" name="User-Agent" value="#request.USER_AGENT#"/>
<cfhttpparam type="BODY" value='{"role_id":"#request.vault_role_id#","secret_id":"#request.vault_secret_id#"}'/>
</cfhttp>
<cfif local.res.status_code NEQ 200>
<cfreturn representationOf(local.res).withStatus(422)/>
</cfif>
<cfset resData=#deserializeJson(local.res.filecontent)#/>
<cfset client_token=#resData.auth.client_token#/>
<cftry>
<cfhttp method="get"
url="#vaultUrl#"
@@ -112,7 +84,6 @@
<cfif local.cred.status_code NEQ 200>
<cfreturn representationOf(local.cred).withStatus(422)/>
</cfif>
<!--- <cfdump var=#cred#/><cfabort/> --->
<!--- *** костыль для перехода от формата v001 к v002 --->
<cfif structKeyExists(instanceData,"vault")
AND structKeyExists(instanceData.vault,"fields")
@@ -125,18 +96,14 @@
<cfelse>
<cfreturn representationOf("Secret not found or no permission to view").withStatus(404)/>
</cfif>
<cfcatch type="ANY">
<cfreturn representationOf(cfcatch).withStatus(500)/>
</cfcatch>
</cftry>
<cfcatch type="ANY">
<cfreturn representationOf(cfcatch).withStatus(500)/>
</cfcatch>
</cftry>
<!--- логируем успешную попытку доступа. (если логировать сначала - неизвестен результат. *** Можно в catch логировать неуспешный --->
<cfset logVaultAccess(
"#request.iam_service_url#/events",
@@ -150,7 +117,6 @@
arguments.usrId,
arguments.contragentId,
arguments.isImpersonated)/>
<cfset var out = structNew("linked")/>
<cfset "out.name" = #arguments.secretName#/>
<cfset "out.value" = #isSimpleValue(local.vaultData)? local.vaultData : serializeJson(local.vaultData)#/><!--- cast any to string --->
@@ -158,7 +124,6 @@
<cfset "out.runDurationMs"=getTickCount() - request.startTickCount/>
<cfreturn representationOf(out) />
</cffunction>
<cffunction name="logVaultAccess" returntype="void">
<cfargument name="loggerUrl" type="string" required=true hint=""/>
<cfargument name="authHeader" type="string" required=true hint="type:string"/>
@@ -171,25 +136,10 @@
<cfargument name="usrId" type="string" required=true hint="type:string WZ"/>
<cfargument name="contragentId" type="string" required=true hint="type:string WZ"/>
<cfargument name="isImpersonated" type="string" required=true hint="type:boolean"/>
<cftry>
<cfset var local={}/>
<!--- расшифруем некоторые данные пользователя для читабельности --->
<!--- нужно еще учесть имперсонирование --->
<!--- <cfquery name="local.qUsr" result="local.result">
select
u.usr_id
u.login
u.email
k.contragent_id
k.external_uid::text as external_uid
k.contragent
from usr u
left outer join contragent k on (u.contragent_id=k.contragent_id)
where u.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#ARGUMENTS.usrId#/>
</cfquery> --->
<cfset var msg = {
"event_type": "credentials_access",
"ip_address": "#CGI.REMOTE_ADDR#",
@@ -208,7 +158,6 @@
"isImpersonated": "#arguments.isImpersonated#"
}
}/>
<!---
https://cfguide.io/logging-observability
https://www.bennadel.com/blog/4150-writing-to-the-standard-out-console-using-writedump-in-adobe-coldfusion-2021.htm
@@ -218,7 +167,6 @@
<cfset SystemOutput(serializeJson(msg))/><!--- *** lucee specific incompatible syntax --->
<cfcatch type="ANY"></cfcatch>
</cftry>
<cfhttp method="post"
url="#arguments.loggerUrl#"
timeout="3"
@@ -229,18 +177,9 @@
<cfhttpparam type="HEADER" name="Content-Type" value="application/json"/>
<cfhttpparam type="BODY" value="#serializeJson(msg)#"/>
</cfhttp>
<!---
arguments:<cfdump var=#arguments#/>
msg:<cfdump var=#msg#/>
local.res:<cfdump var=#local.res#/>
<cfabort/>
--->
<cfcatch type="any">
<cfrethrow/><!--- на этапе отладки лучше тут падать --->
</cfcatch>
</cftry>
</cffunction>
</cfcomponent>
</cfcomponent>