新的 Spring Security 登录会话启动时是不是启动了新的 JSF 会话?

Posted

技术标签:

【中文标题】新的 Spring Security 登录会话启动时是不是启动了新的 JSF 会话?【英文标题】:Is a new JSF session started when a new Spring Security login session starts?新的 Spring Security 登录会话启动时是否启动了新的 JSF 会话? 【发布时间】:2015-08-22 18:57:48 【问题描述】:

我在 Mojarra 2.1.29、Tomcat 7 和 Spring security 2.0 中。我对会话的概念有点困惑。众所周知,会话范围内的托管 bean 在每个会话中创建一次。我的问题是春季安全会话是否与 JSF 会话相同,或者它们以不同的方式运行?

例如,我们正在发送来自已授权用户的登录请求。会议会发生什么。

我想,我们开始一个新的 Spring 安全会话。但是是否也将启动一个新的 JSF 会话?

【问题讨论】:

【参考方案1】:

spring-security session 和 jsf session 都从 servlet 容器绑定到 http session。在 spring-security 中,您可以使用 session-fixation 进行配置,在这种情况下会创建一个新的 http 会话。 @见http://docs.spring.io/spring-security/site/docs/4.0.1.RELEASE/reference/htmlsingle/#ns-session-fixation @见http://docs.spring.io/spring-security/site/docs/4.0.1.RELEASE/reference/htmlsingle/#sessionauthenticationstrategy

JSF 本身也将会话范围的托管 bean 存储为 HttpSession 的一个属性。

默认情况下 spring-security 有“迁移”会话。在这种情况下,jsf 会话将继续。设置“newSession”时,将在没有当前 jsf 会话的情况下创建一个干净的会话。

【讨论】:

如果你提供一些参考,我会给你+1 ;-)

以上是关于新的 Spring Security 登录会话启动时是不是启动了新的 JSF 会话?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security 在新的应用程序启动时重定向到 invalid-session-url

Spring Security、Spring MVC 和登录会话

重启后 Spring Security 仍然经过身份验证(但没有会话)

Grails Spring Security - 会话超时后重新登录时重新加载会话变量

Spring-security:带有 COOKIE 的会话配置不起作用

在tomcat上的grails spring security中登录用户的会话