xPages xAgent安全性

时间:2012-04-21 12:58:20

标签: xpages

我目前正在实施Mark Leusink的OpenNTF多文件上传器。

这个非常好的自定义控件使用xAgent将选定的文件附件嵌入到目标Notes文档中。一切都运行良好,直到我将作者和读者字段添加到Notes文档。现在我在上传文件时收到安全错误(402)。

我的想法是上传xAgent无法编辑目标文档来附加文件。如果我删除安全字段,一切都会再次起作用。

我的问题是,xAgent是否以与当前用户相同的安全性运行?如果没有,我可以像为Lotus Script代理一样为xAgent设置“run as”用户吗?

3 个答案:

答案 0 :(得分:5)

我建议您查看xAgent的代码并重写它以使用sessionAsSigner访问数据库/文档以上载文件。这将使它作为应用程序的签名者运行,并绕过您遇到的安全问题。

答案 1 :(得分:2)

汤姆和德克兰的答案都是正确的,但这并不算是文件上传者。

它使用Flash组件进行实际上传(称为SWFUpload)。由于浏览器cookie不与Flash共享,因此它无法沿用户的会话cookie发送文件,因此无法向Domino服务器发送执行上载的用户登录(也称为匿名)。这就是为什么上传者要求允许匿名用户在ACL中读/写公共文档,并且处理上传文件的XPage / XAgent( aUpload.xsp )设置为允许“公共访问用户”。它使用 sessionAsSigner 对象来访问数据库的内容

通常,上述设置允许每个人匿名上传文件。这就是我根据Mark Ba​​rton的想法实现自定义authentication solution的原因:在上传每个文件之前,向XPage发出请求以检索唯一密钥。 XPage( aGetAuth.xsp )确实在用户凭据下运行,并将密钥存储在数据库中的文档中。此密钥与上载的文件一起发送,并与存储的密钥进行比较。只有在密钥匹配时才允许上传。

如果aUpload.xsp XAgent中的代码可以使用sessionAsSigner调用读取和写入目标文档,那么我首先要检查你的情况。

答案 2 :(得分:0)

马克,德克兰和蒂姆,感谢您的加入。

我修改了xAgent **aGetAuth.xsp**以使用sessionAsSigner来获取当前数据库。起初我收到错误"sessionAsSigner not found"

谷歌表示,快速回答是在测试之前重新签名模板。重新签署模板后,两次,并预先形成“干净”,一切都运作良好。