server.session.cookie.max-age似乎不起作用

时间:2019-05-01 09:15:04

标签: java spring-boot spring-security

我在配置中添加了以下属性:

server.session.cookie.max-age=3600

Set-Cookie HTTP标头是:

Set-Cookie: JSESSIONID=3407BD3E1C7153D70EFC5DBD16B059E4; Path=/; Secure; HttpOnly

因此,似乎Spring忽略了此属性。是否已弃用?如果没有,为什么它不起作用?

这是我的配置:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
            .formLogin()
            .successForwardUrl("/")
            .defaultSuccessUrl("/", true)
            .permitAll()
            .and()
            .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .deleteCookies("JSESSIONID")
            .invalidateHttpSession(true)
            .and()
            .rememberMe()
            .key("key")
            .tokenValiditySeconds(86400);
}

1 个答案:

答案 0 :(得分:2)

在Spring Boot 2.1.4中,您必须使用属性server.servlet.session.cookie.max-age而不是server.session.cookie.max-age,请参见Spring Boot Reference Guide

  

附录A.常见的应用程序属性

     

可以在application.properties文件内,application.yml文件内或命令行开关中指定各种属性。本附录提供了常见的Spring Boot属性列表,并引用了使用它们的基础类。

     

[...]

     
# EMBEDDED SERVER CONFIGURATION (ServerProperties)
[...]
server.servlet.session.cookie.max-age= # Maximum age of the session cookie. If a duration suffix is not specified, seconds will be used.

Spring Boot 2.0.0 RC1 Configuration Changelog