0

我有 2 个从负载平衡器运行的 Notes 服务器。数据库使用目录服务向 LDAP 进行身份验证。

我有检查 LDAP 以检查用户密码是否过期的 java 代码。如果密码过期,代码将重定向到密码更改屏幕。此代码在页面加载之前的事件中运行。由于所有页面都不是公共访问,因此在发生任何事情之前都会发生 Notes 生成的登录。

密码更改屏幕首先在 LDAP 中对用户进行身份验证,然后更改密码。但是,如果我在初始 Note 登录后立即更改密码,则会收到身份验证错误。

如果我将密码改回原来的密码,则不会出现身份验证错误,那么一切正常。

所以我怀疑java代码运行了两次。注释日志应该只运行一次。但是当我们的 LDAP 团队打开日志记录时,他们可以看到密码属性被更改了两次(当我更改为相同的密码时)。因此,失败的原因是,密码已成功更改,但当第二次代码运行时,它使用的是“旧”密码,正是这个错误返回给浏览器。

现在这里是真正变得奇怪的地方。如果我进行 Notes 身份验证,然后在更改密码前等待整整一分钟,则代码只运行一次。

或者如果我去其中一台服务器,代码只运行一次。

仅当我通过负载平衡器或在登录后立即尝试更改密码时,代码才会运行两次。

知道这里到底发生了什么吗?

更新:问题似乎来自我们的反向代理服务器。我们站点的配置方式是 Browser->Reverve Proxy->Load Balancer->(Notes Server 1, Notes Server 2)。如果我去负载均衡器,那么代码只运行一次。

虽然我可能看不到 notes.nsf 的登录,但当我直接查看控制台时,我可以看到它运行了两次。

更新:反向代理正在 Apache 上运行。不确定版本。

4

1 回答 1

0

当我按下提交时,我之前的密码更改页面正在刷新整个页面。由于某种原因,这导致页面被提交两次。我将事情更改为部分刷新,现在一切正常。不知道为什么刷新不喜欢完全刷新。但它现在有效。:)

于 2013-06-17T20:30:07.833 回答