我使用的是Mojarra 2.1.29、Tomcat 7和Spring security 2.0。我对治疗的概念有点困惑。一个众所周知的事实是,每个会话只创建一次具有会话作用域的托管bean。我的问题是spring安全会话和JSF会话是一样的还是它们以不同的方式运行?
例如,我们正在从已经授权的用户发送登录请求。治疗过程中会发生什么。
我假定,我们开始一个新的Spring安全会话。但是是否还会启动一个新的JSF会话呢?
spring-security session和jsf session都是从servlet容器绑定到http session的。在spring-security中,您可以配置会话固定,在这种情况下创建一个新的http会话。
@See 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有'migrate'会话。在这种情况下,jsf会话将继续。当设置'newSession'时,将创建一个没有当前jsf会话的干净会话。