我创建了一个使用Spring Security(3.2)登录提示的Web应用程序。我在Tomcat 7中运行应用程序。我使用Tomcat管理器来监视会话。 它是一个使用Vaadin servlet的Vaadin应用程序。没有使用JSP页面。
现在...
这是预期的行为(防止某种会话固定攻击)还是我只是配置错误?
答案 0 :(得分:6)
简短版本是使用登录页面的登录进程需要创建会话来存储目标页面。
较长的版本是登录过程(假设验证成功)将是这样的:
如果没有会话,容器无法跟踪需要用户请求身份验证的页面(可能很多),因此在身份验证完成后无法将它们重定向到请求的页面。
答案 1 :(得分:1)
会话与spring-security没有直接关系,尽管spring-security可以创建它。会话由第一个getSession()上的servlet容器创建。可以是spring-security或在第一个请求期间运行的任何其他代码,并调用getSession()。
尽管如此,如果您担心,Spring-security可以配置为在您进行身份验证时用“新鲜”替换第一个会话。更多信息here。
我希望我帮助你澄清一些事情。