避免 Spring 应用程序在浏览器关闭时注销

Sha*_*dow 3 java spring spring-mvc spring-security tomcat7

我有一个奇怪的问题,无法解决它。

问题 :

我登录到会话超时很长的 Spring Web 应用程序,每当我退出浏览器然后重新打开它时,访问我的 Web 应用程序,我每次都会看到登录页面。

只要浏览器没有关闭,它就可以正常工作。我认为 chrome 设置有问题,但事实并非如此。它也发生在所有浏览器中。

我的web.xml

    <session-config>
        <session-timeout>10000</session-timeout>
        <cookie-config>
            <name>myapp</name>
            <http-only>true</http-only>
        </cookie-config>
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>
Run Code Online (Sandbox Code Playgroud)

我的 Spring Security 配置:

    <security:http auto-config="true" use-expressions="true">
        <security:intercept-url pattern="/resources/**" access="permitAll" />
        <security:intercept-url pattern="/login" access="permitAll" />
        <security:intercept-url pattern="/login/forgot" access="permitAll" />
        <security:intercept-url pattern="/login/resetpassword" access="permitAll" />
        <security:intercept-url pattern="/home/admin/**" access="hasAnyRole('ROLE_admin', 'ROLE_manager')" />
        <security:intercept-url pattern="/**" access="hasAnyRole('ROLE_admin', 'ROLE_manager','ROLE_user')" />
        <security:form-login 
            login-page="/login" 
            login-processing-url="/login" 
            authentication-failure-handler-ref="authenticationFailureFilter" 
            authentication-success-handler-ref="authenticationSuccessHandler"  
            username-parameter="email" 
            password-parameter="password" />
        <!-- enable csrf protection -->
        <security:csrf/>

    </security:http>
Run Code Online (Sandbox Code Playgroud)

我的web.xml或 Spring Security有问题吗?

not*_*est 5

请设置cookie的最大年龄属性。

默认情况下,返回 -1,这表示 cookie 将持续到浏览器关闭。

Http Servlet Cookie 最大年龄