我们正在从CF9迁移到CF11,并且在调用自定义组件时遇到错误。所有示例都在CF9中工作。
APIFacade.cfc
是我们几年前创建的一个自定义文件。基本上,它创建一个管理对象,登录并创建一个运行时对象。然后调用clearTrustedCache方法:
<cfset adminObj = createObject("component","cfide.adminapi.administrator")>
<cfset adminObj.login("ADMINPW")>
<cfset adminRuntime = createObject("component","cfide.adminapi.runtime")>
<cfset adminRuntime.clearTrustedCache(workingFileList)>
当我们为“file”调用APIFacade.clearTrustedCache方法时:
<cfinvoke component="clearcache.APIFacade"
method="clearTrustedCache"
returnvariable="clearCacheResults">
<cfinvokeargument name="file" value="FILEPATH">
</cfinvoke>
返回以下CF错误:
错误发生在E:/ColdFusion11/cfusion/wwwroot/CFIDE/adminapi/clearTrustedCache/apifacade.cfc:第46行调用的runtime.cfc:第854行
当我们为“目录”调用相同的方法时:
<cfinvoke component="clearcache.APIFacade" method="clearTrustedCache" returnvariable="clearCacheResults">
<cfinvokeargument name="directory" value="DIRECTORYPATH">
<cfinvokeargument name="recursedir" value="1">
</cfinvoke>
我们收到一个cfcatch转储,类型为:
coldfusion.security.SecurityManager$UnauthenticatedCredentialsException
这两种调用似乎都指向了身份验证问题,但我不认为这是真的,因为我可以在apifacade.cfc中插入伪造的cfadmin密码,并且我看到AccessManager.cfc中“当前用户无权调用此方法”的错误。有人知道可能影响到CF11的APIFacade.cfc吗?
发布于 2016-06-23 12:19:27
从评论中提拔,以提高能见度
我发现了一个与您类似的问题,解决方案是在登录方法中包含用户名和密码。See that solution here.
所以就像这样:
<cfset adminObj.login("ADMINPW","ADMINUSERNAME")>
请注意,参数的顺序与您可能预期的相反。密码在用户名之前。
我认为,这可能是由于Adobe通过更新版本的ColdFusion所做的安全性增强。
https://stackoverflow.com/questions/37900278
复制相似问题