2014-06-24 57 views
0

我正在使用基于适配器的身份验证。客户端获得一些凭证,适配器再次验证那些企业服务,结果是我现在在我的enterpriseRealm中。工作灯适配器结束会话

后来,受该领域保护的我的HTTP适配器从其他企业服务中获取一些数据,提供了在原始身份验证发生时获得的一些凭据。

一个可能的结果是,企业服务现在可能检测到用户的会话不再有效 - 一种可能的情况是用户已经撤销了他们的权限 - 因此我的HTTP适配器现在“知道”用户没有如果更长的应该被视为在enterpriseRealm中进行身份验证,则以后对HTTP适配器的调用应该需要重新进行身份验证。

我正在寻找某种方式在服务器端“注销”或以其他方式通知Worklight会话无效。目前为止我所能看到的最好方法是向客户端发送特定的错误响应,并让客户端代码调用WL.Client.logout()。我对此稍有不安,因为它要求我的HTTP适配器方法的所有客户端都能正确处理这种错误情况。有没有更好的选择?

回答

2

与成功验证后设置活动用户的方式类似,您可以使用WL.Server.setActiveUser(“your-realm”,null)API。这将破坏存储在WL服务器上的存储的用户标识。一旦你这样做 - 下一个传入的请求将获得身份验证挑战。

0

投机我自己的部分回答了这个问题:

如果使用基于适配器的认证,则客户端将安装一个挑战处理机。所有适配器响应都提供给已安装的挑战处理程序,因此如果HTTP适配器返回匹配挑战处理程序期望我们有机会终止会话的模式的响应。

这使挑战处理程序成为一个单一的控制点,不需要使适配器调用进行此检查的各种客户端代码。

我假设挑战处理程序可以在这里调用logout();