是否可以在集群内分发"loginContexts“(类似于一个短暂的会话,因此第一个请求中的一些信息在下一个请求中仍然可用,直到登录成功- cookie "_idp_authn_lc_key”)??
我们使用Redis通过覆盖Shibboleth的StorageService来存储会话信息。许多论坛的回答说,这是可能的,只有粘性会话和loginContext存储在本地。
有没有办法在不使用粘性会话的情况下将loginContexts保存在集群上。目前我们得到了“没有登录上下文可用”的错误之一的tomcat。
我们的请求流是- Akamai - Apache服务器(集群)- Tomcat服务器(集群)
注意:_idp_session cookie(这是一个长时间的会话)运行良好,
发布于 2015-07-29 19:30:16
没错。登录上下文是通过不能导出到EHCache、memcached或Redis等解决方案的应用程序接口存储的。你需要使用粘性会话。
用户获得的会话是可用的,这通常是在集群节点之间共享的会话。
..。如果您的负载均衡器不支持粘性会话,您可以通过在IdP前面使用反向代理层来获得一些里程(非常未经测试),该层查看登录上下文会话cookie,确定它来自/去往哪个节点,并将其转发到那里。我想像HAProxy或Nginx这样的东西可以做到这一点。您可以为第二层粘性负载均衡器插入自己的cookie,而不是尝试解析登录上下文会话cookie。
最后,您还可以考虑使用高可用性集群,并使用浮动IP进行主动/被动。
很高兴听到你使用REDIS来做这件事,因为我需要重新考虑如何集群我的IdP来注销。
https://stackoverflow.com/questions/30975996
复制相似问题