如何在注销后阻止用户使用链接访问该页面?

时间:2013-03-14 11:57:30

标签: spring

注销后,我希望用户永远不会访问该页面,即使他们知道正确的URL并输入它。如果他们输入他们登录时看到的页面的URL,则应将其重定向到主页

我使用了header.jsp文件

中的代码
<core:if test="${userName == null}">
    <script>
         parent.location.href='logout.html'
    </script>
</core:if>

但由于标题包含在关于我们页面和注册页面中,我必须为这两个文件创建不同的标题,而不包括上述代码。 有更好的解决方案吗?

解释

  1. 登录并导航到URL中的页面。复制页面的URL
  2. 退出
  3. 在同一浏览器窗口中,粘贴网址
  4. 网站运行正常,但未寻求任何登录详情。

1 个答案:

答案 0 :(得分:3)

我不太确定你在问什么,但我们走了:
我假设您通过弹簧安全保护一些私人网址,例如:

<security:http use-expressions="true">
    <!-- ...more configuration stuff -->
    <security:intercept-url pattern="/private/*" access="isFullyAuthenticated()" />
    <!-- ...more configuration stuff -->
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="/yourUrlAfterLogout.html"/>
</security:http>

然后,当用户退出时,他再也无法访问私人网址了 (更新:Spring Security部分结束)

如果您想要阻止用户在按导航器中的后退按钮或复制私人网址时访问这些受保护的网页,您可以按如下方式配置WebContentInterceptor

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