Xpages 寻找一个完整的样本使用xAgents挑选出来,并在我的应用程序中使用

Xpages 寻找一个完整的样本使用xAgents挑选出来,并在我的应用程序中使用,xpages,Xpages,我对xPages非常陌生,一直在阅读有关xAgents的文章。我需要写一个,但我有点困惑如何开始。比如写下来后怎么称呼它。我应该把代码放在哪里,我可以使用库代码,java代码 有没有人有一个完整的样本,我可以看到,这样我就可以开始与这个?我的大部分代码都是用xPage编写的,但出于安全原因,需要将其放入带有sessionAsSigner的xAgent中以访问其他数据 谢谢 您的第一站将是创造XAgent这个术语的网站(也可以查看文章末尾的链接)。根据您的输出,该选项也可能有用 更新/澄清:XAg

我对xPages非常陌生,一直在阅读有关xAgents的文章。我需要写一个,但我有点困惑如何开始。比如写下来后怎么称呼它。我应该把代码放在哪里,我可以使用库代码,java代码

有没有人有一个完整的样本,我可以看到,这样我就可以开始与这个?我的大部分代码都是用xPage编写的,但出于安全原因,需要将其放入带有sessionAsSigner的xAgent中以访问其他数据


谢谢

您的第一站将是创造XAgent这个术语的网站(也可以查看文章末尾的链接)。根据您的输出,该选项也可能有用

更新/澄清:XAgent是一种前端编程技术,而不是后端工具。Xagent从浏览器(或使用HTTP的其他设备)调用,因此最终用户需要能够访问(当然,ACL适用)。对于程序调用的功能,请使用bean和/或SSJS库

但退一步:

  • XAgent首先是XPage。因此,XPages的所有规则都适用:
  • 如果您通过URL调用它,则没有日程安排或事件设施。XAgent是?OpenAgent URL命令的替代品,而不是用于其他代理用例
  • XAgent始终可以从外部访问,这是它的唯一用途,而不是用于后端调用的设备
  • 由于对XAgent的访问是通过URL进行的,因此这不是一种安全性方法,安全性是通过ACL、读卡器和作者来实现的。使用sessionAsSigner时要小心,如果这是您的默认设置,那么您需要重新审视您的访问控制想法
  • 由于您自己呈现所有XAgent输出,一个典型的用例是仅获取XPages outputstream并将其交给Java(托管)bean的函数调用

您可能希望看到的(再次:重温您的安全模型)是从XPage运行代理(附带性能损失),或者只是为敏感部件使用托管bean,在xAgent中使用sessionAsSigner可能会导致严重的安全问题。当匿名用户知道您的xagent的url时,他可以使用它从不允许这样做的用户检索数据

xAgent正在检索数据,以某种类型(可能)的json或xml结构显示数据,然后您的调用网站正在解析这些数据。因此,知道xagent url的用户可以使用此代理检索不允许他查看的数据。(如果我编写了一个php脚本,用不同的参数调用您的代理100次呢?)


我认为最好的方法是将一个简单的onclick方法绑定到一个按钮上,或者可能是一个onchange,它在一个面板上进行部分刷新,在面板上显示验证结果。

我实际上是先准备好了你的文章,我了解了它的基本知识,但仍然有点不确定如何将其组合在一起。我有一个xPage供用户注册网站。Anonymous具有对数据库的作者访问权限。我需要获取用户在注册页面上输入的信息,并验证数据是否存在于匿名用户无权访问的另一个数据库中,从而以sessionAsSigner身份运行。我认为将查找数据从xPage传递给具有安全性的xAgent,以便根据需要查找数据是有意义的。有更好的方法吗?有一个基本的误解是XAgent是什么!XAgent是一种前端用户指向编程技术,而不是从前端调用的后端指向库。简单的方法是将代码放在SSJS库中并在那里调用函数。另一种方法是使用(托管)bean,这取决于您的Java熟练程度和偏好。这里不需要(X)代理。脚本库中的普通函数就可以了。函数不能从浏览器中调用,只能从您编写的SSJS脚本中调用,因此安全性不是一个问题。正如我前面所说,我是xPages新手。我认为无论是SSJS库代码还是直接在xPage中运行的代码,都会使用web用户的安全性。当web用户(匿名用户)单击按钮以尝试使用sessionAsSigner时,我试图以更高的安全性访问数据。在使用xPages之前,我有一个web表单来捕获数据,submit按钮将调用webquerysave代理,该代理以签名代理的安全性运行。我更希望获得xPages的性能,但需要与webQuerySaveAgent相同的安全性。当您查看xPages中的顶级对象时,您会发现两个会话:会话和会话签名器。会话对象(以及数据库)以用户的安全性运行。然而,顾名思义,sessionAsSigner使用签名者安全性运行。所以您可以执行var lookupDB:Database=sessionAsSigner.getDatabase(server,lookupNsfName),然后执行lookupDB.getView等操作。这就是我需要的。我希望看到一个演示如何创建它和调用它等等。你知道我们要找到一个样本吗?