1

我已经在 Spring JSF Web 应用程序中使用 JBoss6 配置了 https,并且它适用于整个站点,但我只需要为特定文件夹和文件获取 https。在我的 web.xml 中,我以这种方式配置了它

文件夹特定代码块,但在访问页面后有效

<security-constraint>
    <web-resource-collection>
        <web-resource-name>secured folder</web-resource-name>
        <url-pattern>/myfolder/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

如果我仅在没有文件夹特定代码块的情况下放置以下代码并且它为整个站点启用 https,则以下代码有效。

<security-constraint>
     <web-resource-collection>
        <web-resource-name>Protected Area, so redirect to HTTPS</web-resource-name>
            <url-pattern>/*</url-pattern>
       </web-resource-collection>
       <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
</security-constraint>

为了实现这一目标,我还缺少其他什么吗?

4

1 回答 1

0

我过去所做的是在 JBoss 前面放置一个 Apache Web 服务器,然后在上面安装和配置 SSL。然后,您可以轻松配置多个 URL 和上下文路径以转发到不同的内容。在生产环境中使用这种方法有很多优点。

  1. 轻松使用轻量级和简单的 Apache 配置来建立公共上下文路径。

  2. 反向代理 - 您可以使用 mod_jk Apache 插件以这种方式轻松设置反向代理。端口 80 和 443 将只对您的 Web 服务器开放,这意味着您的 JBoss 服务器可以完全位于防火墙后面,并且无法从外部访问。只有 Web 服务器可以与您选择的 AJP 端口上的应用程序服务器通信。

  3. 提供静态内容 - 另一个额外的好处是,您可以将所有静态 Web 内容(例如图像、样式表、javascript、Flash 对象等)放在 Apache 可以提供的上下文中,同时转发JBoss 上所有动态 JSF 或 JSP 内容的不同上下文路径。这有助于减少应用服务器上的冗余负载。

  4. 负载平衡 - 使用 mod_jk 甚至 mod_proxy Apache 插件,您可以将 Apache 配置为 JBoss 集群的负载平衡器。它将能够评估各个 JBoss 节点的健康状况,并智能地决定在哪个应用服务器上转发动态内容请求。

所有这些与 JBoss 上的 HTTPS 和 HTTP 请求有什么关系?显然很难正确地做到这一点,我从很多人那里听说过。这样做将允许您轻松设置一个 URL 和上下文路径以仅提供 HTTPS 动态内容,而另一个提供 HTTP 静态 Web 内容。以下博客文章是一个很好的入门教程。

http://technicalmumbojumbo.wordpress.com/2009/04/21/configuring-http-and-https-on-jboss-server/

于 2012-10-18T11:35:19.820 回答