【问题标题】:Java Session in Jboss ClusterJboss 集群中的 Java 会话
【发布时间】:2012-08-16 15:42:54
【问题描述】:

我们的应用程序在 SIT 环境中运行良好(不在集群中)。现在我们将其移至 JBoss 集群中的 UAT enviormmnt(2 个节点一个集群)。

现在是一个奇怪的问题。

部署了 3 个战争文件:

  1. 管理应用程序
  2. EHS 应用程序
  3. Visa 应用程序(我们的)

成功登录指向管理应用程序。 我们有 2 个链接;一个用于 Visa 应用程序,一个用于 EHS 应用程序。

问题是... 当我们单击或应用程序链接(Visa 应用程序)时,导航不会发生。 [Spring 安全信息无法从 httpsession 获得] 但是,如果我们点击 EHS 链接并返回主页,然后点击我们的链接(Visa 应用程序);它导航。

日志说 httpsession 对象为空。 但是所有这些应用程序都在 SIT 环境中运行。 好纠结啊。。

其他2个应用程序在web.xml中有'验证方法为'FORM'

  <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>TKSOnlineServicesRealm</realm-name>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/login.jsp?error=1</form-error-page>
    </form-login-config>
</login-config>

但我们的应用程序有“BASIC”。

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>TKSOnlineServicesRealm</realm-name>
</login-config>

这可能是问题所在。 无法追踪。请帮忙。迫在眉睫。

提前致谢。

【问题讨论】:

    标签: java jboss spring-security httpsession


    【解决方案1】:

    我认为您应该配置您的 JBoss 服务器以执行 会话复制 和/或 粘性会话。如果没有,则用户会话仅存储在其中一台 JBoss 服务器中,而另一台不知道该用户,避免他在您的应用程序中导航。

    有很多关于配置的信息,但我建议查看this 链接来完成它,这可能会帮助您配置所有 JBoss 集群的东西。

    【讨论】:

    • 这个链接非常有用。但是会话复制是通过在 web.xml 中添加'distributable/>标签来配置的,并且负载均衡器配置为我相信的粘性会话(对于这个集群环境,我们没有访问权限)。如果负载均衡器没有粘性会话;会有帮助吗? REPL_ASYNC 也有帮助吗?
    • &lt;distributable/&gt; 在您的web.xml 中可以。但是,您的应用中有一个jboss-web.xml 可以在那里配置集群?我建议使用粘性会话,但是没有它也应该可以工作。其次,记得使用-all(或带有集群模块的自定义配置文件)配置启动JBoss,以在两个实例中启用集群。
    • REPL_ASYNC 是默认的 JBoss 缓存模式,应该这样工作。
    • 这对你终于有用了吗?
    猜你喜欢
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多