【问题标题】:Problem with JSF forwarding and security constraintJSF 转发和安全约束问题
【发布时间】:2011-03-26 04:34:08
【问题描述】:

我正在制作一个 Web 应用程序,其中某些页面受到登录保护。为此,我在 glassfish 中创建了一个 JDBC 安全领域,并使用了表单身份验证(类似于方法 described here

我正在使用导航规则将用户重定向到网站的安全区域:

<navigation-case>
        <from-outcome>showResults</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/AvailableResults.xhtml</to-view-id>
        <redirect/>
</navigation-case>
(etc...)

这很好用。但是,如果我在导航案例中跳过重定向标记,则页面的 URL 不会改变。在这种情况下,未经身份验证的用户可以访问受保护的页面。

解决此问题的最佳方法是什么?确保页面被重定向而不是转发就足够了吗?我是否应该在每个安全页面中编写代码来检查用户是否登录?

【问题讨论】:

    标签: security jsf jsf-2


    【解决方案1】:

    使用 POST 进行页面到页面导航被认为是不好的做法。不要使用 JSF h:commandLinkh:commandButton 进行简单的逐页导航。两者都会生成一个 POST 表单,这对于简单的导航来说完全没有必要并且对 SEO 不友好。而是改用h:linkh:button。它分别呈现一个普通的 GET 链接和 GET 表单。

    如果您仍然提交 POST 表单并且结果页面与表单页面不同,那么使用 PRG (Post-Redirect-Get) pattern 被认为是一种好的做法。您可以为此使用&lt;redirect/&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 2011-07-03
      • 1970-01-01
      • 2011-09-10
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多