当我们尝试将内部ColdFusion网站迁移到新服务器时,我们遇到了难以捉摸和令人沮丧的问题。新服务器是带有IIS 7的Windows NT 6.0,运行ColdFusion 11。
Siteminder通过标头发送信息,包括用户所在的RACF组。然后ColdFusion application.cfm文件将此列表设置为变量,页面检查它以确定用户在哪个区域工作并显示正确的菜单选项等。
但是,每当输入文件名时,它都不会收到标题信息。例如,将index.cfm设置为默认页面:
WorkforceTracking.localnet.com/Jobs/ - 返回RACF组标题。 WorkforceTracking.localnet.com/Jobs/index.cfm - 不返回RACF组头。
我们最初怀疑Siteminder未设置为正确保护子站点。我们的Siteminder团队向我们提供了一个文件,以检查目录中的其他文件是否有标题信息。对于根站点和任何非.cfm文件,标题信息都会正确显示。
无论我们将默认站点设置为什么,都是如此 - 我已将其更改为其他.cfm文件,并且它们将收到标题信息。
因此,这似乎表明ColdFusion本身在直接调用文件时丢失了头信息。我是服务器管理员角色的新手,我不确定从这里采取什么步骤。有人知道为什么ColdFusion会在调用特定的.cfm文件时丢失头信息吗?
编辑 -
目前,我已经删除了application.cfm和索引文件,只输出了头信息,并让索引页面显示为“Hello”。 index.cfm文件如下:
<cfset x = GetHttpRequestData()>
<cfoutput>
<table cellpadding = "2" cellspacing = "2">
<tr>
<td><b>HTTP Request item</b></td>
<td><b>Value</b></td>
</tr>
<cfloop collection = #x.headers# item = "http_item">
<tr>
<td>#http_item#</td>
<td>#StructFind(x.headers, http_item)#</td>
</tr>
</cfloop>
<tr>
<td>request_method</td>
<td>#x.method#</td>
</tr>
<tr>
<td>server_protocol</td>
<td>#x.protocol#</td>
</tr>
</table>
<b>http_content --- #x.content#</b>
</cfoutput>
<cfoutput>Hello!</cfoutput>
和(某些)标题输出:
适用于devworkforcetracking2.localnet.com/Jobs /
内容长度0
JDWAS_RACFGROUPS U90 ^ $ IMS10G ^ $ IMS20G ^ $ IMS21G ^ $ IMS30G ^ $ TSO11 ^ $ TSO12 ^(等)
SM_AUTHREASON 0
适用于devworkforcetracking2.localnet.com/Jobs/index.cfm
内容长度0
SM_SERVERSESSIONID a9CkEe5LwWPXXPu9a4Mssy8 + o3w =(/ Jobs /更早出现)
SM_AUTHREASON 0
答案 0 :(得分:0)
您是否可以在SiteMinder webagent上启用跟踪,并查看为 WorkforceTracking.localnet.com/Jobs/index.cfm 资源打印的详细信息。
如果正在传递标题,则会在siteminder代理跟踪日志文件中打印它们。