【问题标题】:Glassfish-3.0.1 mixing user sessions - SSOGlassfish-3.0.1 混合用户会话 - SSO
【发布时间】:2015-05-17 06:06:26
【问题描述】:

我们遇到了一个奇怪的行为,我们有一个具有登录表单的应用程序(嵌入 jsf 2.2.4),glassfish 启用了 sso 和一个自定义领域 (LDAP)。我们还有几个应用程序(一些嵌入了 jsf 2.2.4,其他使用 glassfish 的 jsf 实现)由包含登录表单的应用程序链接。

由于某种原因,当 glassfish 大约创建了 300 - 400 个会话或 cpu 处于高速率或可能在随机时刻,我们从主应用程序导航到其他应用程序,然后返回到主应用程序,有时 glassfish更改 jsessionidsso cookie,分配一个新的。问题是,有时那个 cookie 代表另一个用户的会话,所以我们有一个会话组合,可以看到另一个用户的信息。

我们在 Centos-6.5 上运行 Glassfish-3.0.1,没有代理。

我们已经尝试按照本指南 http://www.andygibson.net/blog/quickbyte/updating-weld-in-glassfish-v3/ 更新焊接,但我们目前遇到了相同的行为。

有人能指出我们正确的方向吗?会是什么?

非常感谢! 问候, 马特奥。

【问题讨论】:

    标签: java session cookies glassfish single-sign-on


    【解决方案1】:

    我们有同样的问题,但还不知道原因。我们的临时解决方案:我们将用户 ID 附加到每个用户请求,并且每次都检查该特定用户的权限,因为不幸的是我们不能信任会话 ID。如果会话不属于用户 ID,我们拒绝该请求并要求用户发起一个新会话。该问题影响不到 1% 的会话。

    我们怀疑 Glassfish 服务器前面的负载均衡器系统,但如果有人在没有负载均衡器层的情况下也有同样的经历,问题就隐藏在其他地方。

    【讨论】:

    • 是的,我们没有负载均衡器,您能否详细解释一下您的解决方法的实施情况?
    • 我在我的 jsf 应用程序中使用了一个 phaseListener,如果请求的 userId(经过身份验证的用户的 Principal 中的那个)与它在会话(我在每次登录时将用户 ID 保存在他的会话中)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多