在 IBM Worklight 中连接丢失后自动重新登录到领域
Posted
技术标签:
【中文标题】在 IBM Worklight 中连接丢失后自动重新登录到领域【英文标题】:Automatically relogging in to a realm after connection loss in IBM Worklight 【发布时间】:2014-05-29 12:10:42 【问题描述】:我的问题如下:
我的应用程序受到涉及 LDAP 服务器的移动安全测试的保护。相应的领域称为 LDAPrealm。我使用基于表单的身份验证器 + 自定义 LDAP 登录模块。
当与 worklight 服务器的连接丢失然后重新建立时,我看到当前用户不再在 LDAP 领域中进行身份验证。
我想要的是能够在不让他再次输入凭据的情况下重新验证用户身份。
但是,由于移动安全测试中默认包含的其他领域仍对用户进行身份验证,因此 Worklight 服务器不会再次向客户端质询凭据,这会在尝试提交凭据时导致 j_security_check 错误。
作为旁注,这些凭据存储在加密的 json 存储中,用于离线身份验证和应用程序的使用。
所以我的问题是: 是否可以强制服务器为此LDAPrealm再次挑战客户端并使用submitLoginForm重新登录?
更一般地说,有没有办法在尝试再次登录之前从所有领域清除用户+设备?
编辑原因:之前的错误是由拼写错误引起的
【问题讨论】:
【参考方案1】:如果用户先在线登录,然后断开连接,然后重新连接,调用
WL.Client.logout("LDAPRealm",onSuccess:stealthed_relog);
然后在发送凭据之前在stealthed_relog 中调用WL.Client.connect()
似乎具有所需的行为。
但是,当用户离线登录然后获得连接时,当我尝试使用 WL.Client.connect() 时,它说 WL.Client.connect 的另一个实例已被调用。
编辑:对于日志离线情况,在连接事件触发后不久应用程序会自动受到挑战(心跳的原因?我真的不知道),所以你只需要使用
login_clientside.submitLoginForm();
再次成功登录。
如果有人有更好的方法在 Worklight 中使用 ldap 服务器实现自动重新连接,请随时发布,我将不接受我的回答。
【讨论】:
以上是关于在 IBM Worklight 中连接丢失后自动重新登录到领域的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight - 如何重命名应用程序并更改其图标、初始图像
IBM Worklight 与 HttpAdapter 的连接正在重置