在IBM Worklight中连接丢失后自动重新进入域

时间:2014-05-29 12:10:42

标签: authentication ibm-mobilefirst

我的问题如下:

我的应用程序受到涉及LDAP服务器的移动安全测试的保护。相应的领域称为LDAPrealm。我使用基于表单的身份验证器+自定义LDAP登录模块。

当与worklight服务器的连接丢失然后重新建立时,我看到当前用户不再在LDAP领域中进行身份验证。

我想要的是能够重新验证用户,而无需再次输入凭据。

但是,由于用户仍然在移动安全测试中默认包含其他域,因此工作灯服务器不会再次向客户端发送凭据,这会在尝试提交凭据时导致j_security_check错误。

另请注意,这些凭据存储在加密的json存储中,以便进行脱机身份验证和应用程序的使用。

所以我的问题是: 是否可以强制服务器再次为此LDAPrealm挑战客户端并使用submitLoginForm重新登录?

更一般地说,有没有办法在尝试再次登录之前从所有领域清除用户+设备?

编辑原因:上一个错误是由拼写错误引起的

1 个答案:

答案 0 :(得分:4)

如果用户首先在线登录,则失去连接,然后再次连接,呼叫

WL.Client.logout("LDAPRealm",{onSuccess:stealthed_relog});

稍后在发送凭据之前在stealthed_relog中调用WL.Client.connect()似乎会发挥所需的行为。

但是,当用户离线登录然后获取连接时,当我尝试使用WL.Client.connect()时,它表示已经调用了另一个WL.Client.connect实例。

编辑:对于日志脱机情况,应用程序会在连接事件触发后立即自动提出质询(心跳的原因?我真的不知道),所以你只需要使用

login_clientside.submitLoginForm();

再次成功登录。

如果有人有更好的方法在ldap服务器的工作灯中实现自动重新连接,请随意发布它,我将不接受我的回答。