我正在为一群用户开发一些东西,当我测试它时,NAT 用户正在合并他们的信息,因为它只是一个会话。如何拆分它以向正确的用户显示正确的信息?
我正在使用 Java、JSF 1.2 和 SpringSecurity。
更新:
或者至少,我如何开发一些东西并确保它被拆分,并且一个用户只能访问他自己的信息?
我正在为一群用户开发一些东西,当我测试它时,NAT 用户正在合并他们的信息,因为它只是一个会话。如何拆分它以向正确的用户显示正确的信息?
我正在使用 Java、JSF 1.2 和 SpringSecurity。
更新:
或者至少,我如何开发一些东西并确保它被拆分,并且一个用户只能访问他自己的信息?
这可能是一个愚蠢的(抱歉)会话处理,它通过 IP 匹配会话。您所有的 NAT 用户都具有相同的外部 IP,因此它们被合并了。更好地使用 cookie 来处理会话。
正如belarius 所说,也许你已经使用了cookies,但是如果cookies 是从IP 创建的,它们就非常没用了。
如果您谈论的应用程序不是基于浏览器的,您将必须向您的客户发送 cookie,并且必须自己实现 cookie 处理。或者每个客户端只使用一个 TCP 连接,然后在重新连接时重新登录。
加上@Daniel 的回答,我认为基于 IP 地址的关联配置了不正确的子网掩码值。如果配置了基于 IP 地址的关联,则掩码应为 255.255.255.255 以唯一标识基于 IP 的连接。这也应该在 IP 虚拟服务器中进行检查。
有时,当您的会话 cookie 在每次会话开始时都没有正确重新生成时,就会发生这种情况。检查您在不同客户端中的 session_id 以测试此假设。