如何确保只创建一次Coldfusion对象?

时间:2012-12-02 11:48:17

标签: security object coldfusion scheduled-tasks

我有scheduled task,应该每分钟运行一次。要阻止从外部调用文件,我想比较主机和调用IP地址,如下所示:

 <cfif NOT structKeyExists( "variables", caller )>
    <cfset variables.caller = createObject("java", "java.net.InetAddress")>
 </cfif>

 <cfif variables.caller.getLocalHost().getHostAddress() EQ cgi.remote_addr> 
     // run task
 </cfif>

问题:
我真的不习惯在Coldfusion中使用objects,所以这是一种确保对象被创建一次并在调用任务时每分钟重新创建的方法吗?由于这是在我的管理部分中运行的,我应该立即在应用程序范围上创建对象吗?

感谢您的一些意见!

1 个答案:

答案 0 :(得分:1)

即使请求是计划任务,当您运行请求时,在请求完成时也会销毁所有变量。只有会话,应用程序和服务器之类的变量在请求之间保持不变。

确保页面仅在其所在机器上运行的一种方法是:

<cfif cgi.remote_addr EQ "127.0.0.1"> 
 // run task
</cfif>