【问题标题】:How to set http headers in JBoss EAP 6.1如何在 JBoss EAP 6.1 中设置 http 头文件
【发布时间】:2019-12-03 20:48:33
【问题描述】:

我想在 jboss 6.1.0 中为 x-frame 选项和 Strict-Transport-Security 设置 http 标头。

我一直在寻找合适的配置文件来添加这些头文件,我能够看到 jboss 6.4、jboss 7 的一些程序,但我没有得到 jboss 6.1 的任何东西

Configure Http Headers in JBoss EAP 7

这是在 jboss 7 中,我需要为 jboss 6.1 做同样的事情

我在 jboss 6.1 中尝试了很多方法来确定所需的正确配置更改,但我无能为力。

如果有人知道在 jboss 6.1 中这样做,请告诉我

提前致谢。

【问题讨论】:

  • 我可以通过添加过滤器并设置响应来做到这一点,但仅适用于有效的上下文根。我将 jboass 的上下文根设为“/jbossadmin”。现在我也想为其他 URL(无效的上下文根)添加这些标头。例如,如果我在没有 /jboassadmin/ 的情况下执行 curl -i ip:port,我将得到 404 Not found,这里我还需要添加标题。 HTTP/1.1 404 未找到服务器:Apache-Coyote/1.1 X-Powered-By:Servlet/3.0; JBossAS-6 内容长度:0 日期:2019 年 7 月 31 日星期三 06:49:06 GMT 是否有任何选项可以配置这些标头以将它们添加到无效上下文中。谢谢。

标签: jboss http-headers jboss6.x x-frame-options strict-transport-security


【解决方案1】:

如果您使用 Apache HTTPD 作为 JBoss 的代理,使用 Header 指令添加所有这些标头非常容易。否则,您可以在自定义过滤器中设置所有这些标头,并放置在相应的 Web 应用程序的 lib 文件夹中。

【讨论】:

  • 我尝试在自定义过滤器中添加这些标题,将其放在 lib 中并将其映射到 XML,但仍然看不到添加任何标题。我只得到这样的响应:HTTP/1.1 404 Not Found
  • 仅为有效的上下文根添加标头,我将 jboass 的上下文根设为“/jbossadmin”。现在我还想为其他 URL 添加这些标头
  • 仅为有效的上下文根添加标头,我将 jboass 的上下文根设为“/jbossadmin”。现在我还想为其他 URL 添加这些标头。例如,如果我在没有 /jboassadmin/ 的情况下执行 curl -i ip:port 我将得到 404 Not found ,这里我需要添加标题。 HTTP/1.1 404 未找到服务器:Apache-Coyote/1.1 X-Powered-By:Servlet/3.0; JBossAS-6 Content-Length: 0 Date: Wed, 31 Jul 2019 06:49:06 GMT 无论如何要为这些其他 URL 添加标头?
【解决方案2】:

这个答案存在于RedHat Knowledgebase。由于它需要 RedHat 凭据,因此我在此处发布了相同的答案。

解决方案:

可以使用 servlet 过滤器将额外的 HTTP 标头添加到响应中。下面是一个使用 Servlet 3.0 @WebFilter 的示例过滤器。使用注解不需要配置web.xml启用过滤器。

/*
 *  This is a sample servlet filter to set "X-Frame-Options" http header to 
 *  http response. 
 */

package com.redhat.jboss.support;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebFilter;

@WebFilter("/*")
public class AddCustomHeaderFilter implements Filter {

    /**
     * Take this filter out of service.
     */
    public void destroy() {
    }

    /**
     * @param request The servlet request we are processing
     * @param result The servlet response we are creating
     * @param chain The filter chain we are processing
     *
     * @exception IOException if an input/output error occurs
     * @exception ServletException if a servlet error occurs
     */
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain) throws IOException, ServletException {

      ((HttpServletResponse)response).setHeader("X-Frame-Options", "SAMEORIGIN"); 
      chain.doFilter(request, response);

    }


    /**
     * Place this filter into service.
     *
     * @param filterConfig The filter configuration object
     */
    public void init(FilterConfig filterConfig) throws ServletException {
    }

}
  • 编译AddCustomHeaderFilter.java后,会生成一个包 使用AddCustomHeaderFilter.class 创建名为com.redhat.jboss.support
  • 使用以下方法为 AddCustomHeaderFilter.class 创建一个 jar 命令。它将生成一个 jar AddCustomHeaderFilter.jar

    jar -cvf AddCustomHeaderFilter.jar com

  • 将此 jar 放入 Web 应用程序的 WEB-INF/lib 文件夹中。它将在 Web 应用程序中启用 Servlet 过滤器。

注意: AddCustomHeaderFilter.java 类中给出的示例用于“SAMEORIGIN”。 X-Frame-Options 有以下可能的值:

  1. DENY:页面不能在框架中显示,无论 网站试图这样做。
  2. SAMEORIGIN:页面只能在同一个框架中显示 来源为页面本身。

【讨论】:

  • 谢谢@Abhijeet,我也在尝试。仅为有效的上下文根添加标头,我将 jboass 的上下文根设为“/jbossadmin”。现在我还想为其他 URL 添加这些标头。例如,如果我在没有 /jboassadmin/ 的情况下执行 curl -i ip:port 我将得到 404 Not found ,这里我需要添加标题。 HTTP/1.1 404 未找到服务器:Apache-Coyote/1.1 X-Powered-By:Servlet/3.0; JBossAS-6 Content-Length: 0 Date: Wed, 31 Jul 2019 06:49:06 GMT 无论如何要为这些其他 URL 添加标头?
  • @Suman 上述解决方案适用于 JBoss EAP 6。您使用的是 EAP 还是 AS?您能否详细说明您的新问题,您可以为现有问题添加更新
  • @Suman 如果我正确理解您的问题。我的回答只会为您提供有效上下文根的更新标题。但是您也想更新无效上下文根的标头。我说的对吗?
  • 是的,Abhijeet,你是​​对的。我也想查看无效上下文的更新标题。
  • 我们尝试了这个解决方案,结果出现了一些部署异常。但是根据这篇帖子stackoverflow.com/questions/26975994/…,只有在上下文根正确的情况下才会调用阀门,我认为这又会是同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 2013-08-25
  • 2015-07-26
  • 2014-01-31
  • 2014-02-28
  • 1970-01-01
相关资源
最近更新 更多