CF9到CF11迁移问题:调用自定义组件时出现身份验证错误

时间:2016-06-18 18:25:03

标签: coldfusion

我们正在从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错误:

  

在runtime.cfc中发生错误:第854行来自   E:/ColdFusion11/cfusion/wwwroot/CFIDE/adminapi/clearTrustedCache/apifacade.cfc:   第46行

当我们为“目录”调用相同的方法时:

<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调用此方法“。有人知道可能影响APIFacade.cfc的CF11错误吗?

1 个答案:

答案 0 :(得分:1)

从评论中推广以提高可见度

我发现了一个与您类似的问题,解决方案是在登录方法中包含用户名密码。 See that solution here.

这样的事情:

<cfset adminObj.login("ADMINPW","ADMINUSERNAME")>

请注意,参数的顺序与您的预期相反。密码在用户名之前。

我认为这可能是因为Adobe使用较新版本的ColdFusion进行了安全性增强。