jboss 集群 session 复制不起作用(多个 jsessionid cookie)

标签 jboss session-variables session-cookies load-balancing session-replication

我正在尝试对部署在具有 2 个节点的集群模式下工作的 jboss 上的 Web 应用程序进行身份验证。

身份验证成功后,我被重定向到一个管理页面,过滤器检查我是否登录。

在独立模式下它工作得很好,但是当我部署到使用集群模式的生产中时,过滤器拒绝我的请求,因为它无法访问我在身份验证时建立的 session 参数。

使用开发人员工具,我看到有 3 个 JSESSIONID cookie 集:一个用于 / , 一为 /myapplication path 和另一个名为 JSESSIONID-34234 的路径也用于 /myapplication路径(我在开始这个过程之前已经清除了所有这些)。

浏览 jboss 文档我看不到对此的任何解释,尽管它似乎是我问题的根源。

如何在我的 JBoss 集群中进行身份验证(我使用的是基于 spring security http 表单的身份验证)?

最佳答案

通过将以下内容添加到虚拟主机配置文件来启用粘性 session 来解决:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/myapplication" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://jboss6-hc-001-8109>
  BalancerMember ajp://jboss2.imatiasl.lan:8109 route=jboss2-hc-001-server-02
  BalancerMember ajp://jboss3.imatiasl.lan:8109 route=jboss3-hc-001-server-02
  ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>

关于jboss 集群 session 复制不起作用(多个 jsessionid cookie),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36882250/

相关文章:

java - 远程 JMX 调用失败,出现 ClassNotFoundException : . ..(无安全管理器:禁用 RMI 类加载器

node.js - 如何修复 isAuthenticated=false 且登录成功后无 req.user 数据

node.js - Sails js session 无法与 Microsoft Edge 一起使用

php - (php) 如何在目前已完成的表格中正确处理 'save' 信息

asp.net-mvc - 如何在mvc中的 Controller 中对 session 变量进行单元测试

php - 使用表单保存多个 session 变量

php - 将 PHP session 从一个目录传递到另一个在 public_html 中并行创建的目录

java - maven 和 jboss 模块

java - 为什么这个简单的调度程序不起作用?

java - 为什么 Page 指令具有无效属性 : "trimDirectiveWhitespaces"?