【问题标题】:When releasing an application, how to disable pages used during devolpment?发布应用程序时,如何禁用开发过程中使用的页面?
【发布时间】:2014-01-26 04:24:21
【问题描述】:

有没有办法在部署到生产环境时禁用 JSF 页面,但在开发环境中使用这些功能?

我正在使用带有 JSF 的 Java EE 创建 Web 应用程序。我使用了一些 JSF 页面来进行调试和测试。当应用程序部署在其生产环境中时,我想禁用这些页面。没有人,甚至开发人员都不需要在部署的应用程序上使用这些页面,所以我想禁用它们作为安全预防措施。

我不想简单地限制经过身份验证的用户的访问。首先,这使得使用调试功能变得乏味,因为需要登录。其次,调试功能非常强大,如果我的 Web 应用程序存在漏洞,攻击者获得这些功能的访问权限可能是毁灭性的。

【问题讨论】:

  • 你使用maven之类的打包工具吗?那么它应该很容易实现
  • 我确实使用 maven,但我不确定如何使用 Maven 来实现这一点。让研究开始吧。
  • 使用 maven 很容易。假设您没有通过应用程序访问 JSF 测试视图的任何链接,只需在构建生产战时使用 maven Web 资源选项来省略所有测试内容(我会为 xhtml 和 bean 执行此操作)。您可以使用 Maven 配置文件在调试生产之间有所不同。
  • 看看this
  • 在这个阶段,如果你写了,我会接受答案。

标签: jsf maven jakarta-ee jsf-2 glassfish


【解决方案1】:

您可以使用 Maven WAR 插件从构建中排除资源。您可以使用通配符和偶数表达式来指定要排除的内容。

让我们参考文档中的一些改编示例:

<build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <packagingExcludes>*-test.xhtml</packagingExcludes>
        </configuration>
      </plugin>
    </plugins>
</build>

这将从您的 Web 应用程序的根目录中排除所有以 -test.xhtml 结尾的资源。您可以根据自己的要求进行开发。

另请参阅:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2011-07-10
    相关资源
    最近更新 更多