我正在使用基于适配器的身份验证。客户端获取一些凭据,适配器再次验证那些企业服务,结果是我现在在我的enterpriseRealm中。
稍后,受该领域保护的HTTP适配器将从其他企业服务获取一些数据,提供原始身份验证时获得的一些凭据。
一个可能的结果是企业服务现在可以检测到用户的会话不再有效 - 一种可能的情况是用户已经撤销了他们的权限 - 因此我的HTTP适配器现在“知道”用户不再应该在enterpriseRealm中被视为已经过身份验证,以后对HTTP适配器的调用应该需要重新认证。
我在服务器端寻找某种方式“注销”或以其他方式通知Worklight会话无效。到目前为止,我能看到的最好的方法是将特定的错误响应发送回客户端,并让客户端代码调用WL.Client.logout()。我对此略感不安,因为它要求我的HTTP适配器方法的所有客户端正确处理此错误情况。还有更好的选择吗?
答案 0 :(得分:2)
与成功进行身份验证后设置活动用户的方式类似,您可以使用WL.Server.setActiveUser(" your-realm",null)API。这将破坏存储在WL服务器上的存储的userIdentity。一旦你这样做 - 下一个传入的请求将获得身份验证挑战。
答案 1 :(得分:0)
推测我对这个问题的部分答案:
如果使用基于适配器的身份验证,则客户端将安装Challenge Handler。所有适配器响应都提供给已安装的质询处理程序,因此如果HTTP适配器返回的响应与质询处理程序期望的模式匹配,我们就有机会终止会话。
这使得Challenge Handler成为一个单一的控制点,不需要各种客户端代码来调用适配器进行检查。
我假设挑战处理程序此时可以调用logout();