Tridion 环境数据框架从taf:server:Java中的变量获取远程用户
我的网站运行在.Net上,我使用的是SDL Tridion 2009。 当用户登录时,我可以看到REMOTE_用户变量正确地存储在声明存储区的taf:server:variables组中(使用.net脚本) 在我的盒式磁带(java)中,我试图提取此值,但我可以看到,当打印索赔存储中的所有内容时,此值为空 我的Java代码如下所示:Tridion 环境数据框架从taf:server:Java中的变量获取远程用户,tridion,tridion2009,tridion-content-delivery,Tridion,Tridion2009,Tridion Content Delivery,我的网站运行在.Net上,我使用的是SDL Tridion 2009。 当用户登录时,我可以看到REMOTE_用户变量正确地存储在声明存储区的taf:server:variables组中(使用.net脚本) 在我的盒式磁带(java)中,我试图提取此值,但我可以看到,当打印索赔存储中的所有内容时,此值为空 我的Java代码如下所示: Map serverParameters = (Map)claimStore.get(WebClaims.SERVER_VARIABLES); for (Obje
Map serverParameters = (Map)claimStore.get(WebClaims.SERVER_VARIABLES);
for (Object key: serverParameters.keySet()) {
log.debug("Key : " + key.toString() + " Value : " + serverParameters.get(key));
}
更新:
我的盒带配置包含以下inputclaim:
<InputClaims>
<ClaimDefinition Uri="taf:server:variables" />
</InputClaims>
不幸的是,这没有帮助,我也尝试了taf:server:variables:remoteuser/remote_user/*但没有成功
当我检查日志时,我看到密钥REMOTE_USER,但该值为空
我想知道是否有其他人见过这种情况并知道解决方案。如果请求是在没有身份验证的情况下完成的(即允许匿名访问),则远程用户为空是完全有效的 因此,这似乎是最明显的问题。您不应该期望它总是被设置的,但是您当然可以对服务器上的相关URL强制执行身份验证方案,以便在您希望盒带处理的情况下正确填充它
另外,输入声明部分在这种情况下不相关,因为服务器变量不是由盒式磁带设置的,而是由HTTP模块设置的。输入和输出声明仅用于确定盒带之间的依赖关系(以及盒带的顺序)。定时问题?您的盒带是否在设置值之前执行?如果存在密钥,则应设置该值(至少在我能确定的范围内)。但确实需要确定的是:您的盒带配置是否表明您依赖于REMOTE_用户变量?谢谢chaps,我已经尝试过了,但怀疑声明的url不正确。我已经更新了我的问题。