注销后退按钮应始终重定向到登录页面

时间:2011-05-31 05:52:16

标签: spring-mvc spring-security

我正在使用spring security,这是配置文件,

    <intercept-url pattern="/login.htm" access="permitAll"/>
    <intercept-url pattern="/admin.htm" access="hasRole('ROLE_ADMIN')"/>
    <intercept-url pattern="/common.htm" access="hasRole('ROLE_USER')"/>

    <form-login 
            login-page="/login.htm" 
            authentication-failure-url="/login.htm?error=true" 
            default-target-url="/loginPlease.htm"/>

    <logout 
            invalidate-session="true" 
            logout-success-url="/login.htm" 
            logout-url="/logout.htm"/>

    <session-management >
           <concurrency-control max-sessions="1"
                     error-if-maximum-exceeded="false"
                     expired-url="/login.htm"/>
       </session-management>

如果某人退回后退出按钮,他会被重定向到最后一页,但我希望他总是被重定向到登录页面。如果用户直接在浏览器中输入链接,即使他已经注销,他也会被重定向到该页面。

3 个答案:

答案 0 :(得分:0)

我认为你需要添加

<intercept-url pattern="/login.htm*" filters="none"/>

阻止执行SessionManagementFilter以及其他所有会话。这也意味着标签不起作用。

希望它有所帮助。

答案 1 :(得分:0)

问题的反面(让人们在退出VS后返回时仍然退出。让人们在登录后返回时仍然登录)was solved by putting in a cache-management filter

答案 2 :(得分:0)

<mvc:annotation-driven/>
<mvc:interceptors>
    <bean id="webContentInterceptor" 
          class="org.springframework.web.servlet.mvc.WebContentInterceptor">
        <property name="cacheSeconds" value="0"/>
        <property name="useExpiresHeader" value="true"/>
        <property name="useCacheControlHeader" value="true"/>
        <property name="useCacheControlNoStore" value="true"/>
    </bean>
</mvc:interceptors>