如何在Spring Security中启用会话并设置会话超时


问题内容

我是Spring Security的新手,正在从事登录,注销和会话超时功能。我已经通过参考文档配置了代码。我的代码如下:

@Override
protected void configure(HttpSecurity http) throws Exception {

    http.authorizeRequests().antMatchers("/admin/**")
        .access("hasRole('ROLE_USER')").and().formLogin()
        .loginPage("/login").failureUrl("/login?error")
            .usernameParameter("username")
            .passwordParameter("password")
            .and().logout().logoutSuccessUrl("/login?logout").and().csrf();
    http.sessionManagement().maximumSessions(1).expiredUrl("/login?expired");
}

重写类AbstractSecurityWebApplicationInitializer

import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;

public class SpringSecurityInitializer extends AbstractSecurityWebApplicationInitializer {

    @Override
    public boolean enableHttpSessionEventPublisher() {
        return true;
    }

}

我需要澄清我是否做对了,如果看起来不错,那么我需要在哪里设置会话超时。我完全基于注释来做。


问题答案:

我仅通过在web.xml中添加以下配置就能够解决上述问题。任何更好的方法都会被接受。

 <session-config>
    <session-timeout>20</session-timeout>
</session-config>