我在 xpages 中编写了一个更改密码模块,而不是使用 ?changepassword 功能,并且我能够获得用于更改密码的管理流程,并且能够使用 xpage 和 ssjs 更改 http 密码,请参阅帖子here 。问题是,在 Web 用户更改其 http 密码后,在管理进程执行密码更改请求后大约 1 分钟或更短时间内,用户将被锁定在服务器之外。服务器显示以下错误14次:
nHTTP: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="681d1b0d1a280d05090104090c0c1a0d1b1b460b0705" rel="noreferrer noopener nofollow">[email protected]</a> [192.168.0.197] authentication failure using internet password
然后,它显示以下消息:
nHTTP: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7b0e081e093b1e161a12171a1f1f091e080855181416" rel="noreferrer noopener nofollow">[email protected]</a> [192.168.0.197] has just been locked out via internet password lockout: User is locked out
服务器设置为使用单服务器 session 身份验证,大多数其他设置都是普通设置。它设置为使用 self 认证(用于测试),锁定设置为 15 次尝试。我们还使用 OAuth token 存储进行 FaceBook 和 LinkedIn 身份验证。
如果我删除锁定记录并尝试重新登录,服务器会立即再次将我锁定,即使我只尝试登录一次,服务器控制台也会显示多次尝试。如果我删除锁定记录并切换到其他浏览器(foxfire 或 chrome),那么我就可以正常登录。我假设这是一个身份验证 token 问题,当我更改服务器上的互联网 http 密码时,客户端无法获取更新的信息,并且当客户端将 key 信息传递到服务器时,它不再匹配并导致它锁定我出去。
$$ChangePasswordForm 的 dbname.nsf?changepassword 功能有效,我可能会使用它,但希望如果有人在之前看到过这个,他们可以给我一个解决方法。
最佳答案
我认为问题的关键在于你的评论
如果我删除锁定记录并切换到其他浏览器(foxfire 或 chrome),那么我就可以正常登录。
我认为问题是用户在更改密码后在 cookie LTPAToken 中出现了代表其身份验证详细信息的无效 token 。在成功更改密码后的响应中,使用 setCookie 调用或其他方法来使 cookie 失效/删除,并强制用户重新进行身份验证。
关于xpages - HTTP 密码更改导致 Web 用户被锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25889646/