Ibm mobilefirst 参数对WL.Client.createChallengeHandler的意义是什么?

Ibm mobilefirst 参数对WL.Client.createChallengeHandler的意义是什么?,ibm-mobilefirst,worklight-security,Ibm Mobilefirst,Worklight Security,我正在使用Worklight 6.0和基于表单的身份验证 我认为WL.Client.createChallengeHandler()的参数是质询处理程序将要处理的领域,但测试似乎表明无法创建特定于领域的质询处理程序 我有一个带有2个程序的适配器。 每个程序都有单独的安全测试。 每个测试对应一个不同的领域:r1和r2 在我的应用程序中,我有两个挑战处理程序,一个用于r1,一个用于r2。但是,r1的质询处理程序最终会处理这两个适配器过程的质询。我发现我可以使用WL.Client.createChal

我正在使用Worklight 6.0和基于表单的身份验证

我认为WL.Client.createChallengeHandler()的参数是质询处理程序将要处理的领域,但测试似乎表明无法创建特定于领域的质询处理程序

我有一个带有2个程序的适配器。 每个程序都有单独的安全测试。 每个测试对应一个不同的领域:r1和r2

在我的应用程序中,我有两个挑战处理程序,一个用于r1,一个用于r2。但是,r1的质询处理程序最终会处理这两个适配器过程的质询。我发现我可以使用WL.Client.createChallengeHandler()中的任何字符串……不存在的领域、空字符串,甚至没有参数,这可能会改变使用两个质询处理程序中的哪一个,但无论使用哪一个,都将用于所有质询


WL.Client.createChallengeHandler()的参数用于什么?有没有办法将质询处理程序绑定到域?

此参数对于大多数用户身份验证案例没有意义。域不是通过其名称检测的,而是通过质询处理程序中的isCustomResponse()函数检测的

WL auth框架基本上知道如何处理两种类型的领域

  • 内部WL安全领域,例如NodeViceProvision、antiXSRF等。它们来自WL身份验证框架,具有预定义的硬编码领域名称。对于这些领域,WL框架在内部使用参数(realmName)

  • 其余的,包括自定义用户身份验证领域、网关,任何您想要的。在这种情况下,开发人员不能依赖realmName,因为在某些情况下,开发人员甚至无法控制挑战的外观(例如,身份验证网关)。因此,您可以将任何字符串作为s realmName参数提供(无论如何都将忽略它),并使用isCustomResponse()函数检测质询是否属于特定领域

  • 好的实践是无论如何提供一个适当的实名,使您的代码成为未来的证明