【问题标题】:Worklight adapter end sessionWorklight 适配器结束会话
【发布时间】:2014-06-24 05:02:17
【问题描述】:

我正在使用基于适配器的身份验证。客户端获得一些凭据,适配器再次验证这些凭据是企业服务,结果是我现在在我的 EnterpriseRealm 中。

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

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

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

【问题讨论】:

    标签: ibm-mobilefirst worklight-security


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      推测我自己对这个问题的部分答案:

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

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

      我假设此时挑战处理程序可以调用 logout();

      【讨论】:

        猜你喜欢
        • 2015-10-25
        • 1970-01-01
        • 2016-01-03
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 2014-11-12
        • 1970-01-01
        相关资源
        最近更新 更多