我的Web应用程序遇到问题。 我在Tomcat上运行Spring \ Java应用程序,使用cookie。我的会话到期时会出现问题。 应用程序正确生成一个新cookie并将其写入URL,但cookie被复制。在下一个请求中,已删除过期的cookie,但在第一个请求中,我有两个cookie。
所以,步骤:
我的用户登录应用程序,应用程序设置cookie并将其附加到请求中:
如果我等待会话过期,则在下一个请求时,网址会更改为:
在下一个请求中,网址转到:
这是我的SecurityConfig:
final HttpSessionCsrfTokenRepository tokenRepository = new HttpSessionCsrfTokenRepository();
tokenRepository.setHeaderName("TOOLBIZ-CSRF-TOKEN");
tokenRepository.setParameterName("toolbiz_csrf");
http.authorizeRequests()
.antMatchers("/main/**").permitAll()
.antMatchers("/main").permitAll()
.antMatchers("/main/logout").permitAll()
.antMatchers("/errore").permitAll()
.antMatchers("/errore/**").permitAll()
.antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
.antMatchers("/**").access("hasRole('ROLE_USER')")
.and().sessionManagement().enableSessionUrlRewriting(true)
.and().formLogin()
.loginPage("/main/login").failureUrl("/login?error")
.usernameParameter("username")
.passwordParameter("password")
.and().logout().logoutSuccessUrl("/logout")
.deleteCookies("cookie") <-----------------------
.and().exceptionHandling().accessDeniedPage("/jsp/403.jsp")
.and().csrf().disable();
}
我做了类似的事情:
.and().sessionManagement().invalidSessionUrl("/").sessionFixation().newSession()
但我不知道这是否正确。
如果您需要其他信息,请不要犹豫。提前谢谢。
编辑:cookie在web.xml文件中生成:
<session-config>
<cookie-config>
<name>toolBizCookie</name><!-- default is jsessionid -->
<http-only>true</http-only>
</cookie-config>
<tracking-mode>URL</tracking-mode>
</session-config>