【问题标题】:Set response headers in CQ5/AEM在 CQ5/AEM 中设置响应标头
【发布时间】:2016-10-18 14:10:42
【问题描述】:

我们需要在基于 CQ5/AEM 的应用程序中设置以下响应标头。

Http Header: Frame options 设置 X-Frame-Options: SAME ORIGIN Http Header: 严格传输安全 Strict-Transport-Security: max-age=10886400;包括子域;预加载

我在之前的应用程序中使用 servlet 过滤器拦截了请求。同样,我尝试将 SlingFilter 用于此应用程序。然而,对于每个请求,它似乎被调用了很多次(当它下载 js、css、json 文件等时)。请看下面的代码sn-p,

@SlingFilter(scope = SlingFilterScope.COMPONENT, order = Integer.MIN_VALUE)
@Properties({

    @Property(name="pattern",value="/soni/template/", propertyPrivate=false) 
})
public class ResponseHeaderFilter implements Filter {
@Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
            throws IOException, ServletException {

        try {

                HttpServletResponse httpResponse = (HttpServletResponse)response;        
                httpResponse.setHeader("Strict-Transport-Security", "max-age=10886400; includeSubDomains");
                filterChain.doFilter(request, httpResponse);
                httpResponse.setHeader("X-Frame-Options", "SAMEORIGIN");

        } catch (Exception e) {                 
            e.printStackTrace();
        }        

    }

这是在 CQ5/AEM 中执行此操作的正确方法吗?如何将其限制为每页请求一次? 还是有更好的方法来做到这一点,比如在调度员等处进行配置?

【问题讨论】:

  • 您是否有不想从 Apache/Dispatcher 层执行此操作的原因?
  • 看看那个选项,这是我的问题的一部分。我已经要求我公司的管理员进行调查。我是 CQ5/AEM 的新手。我认为我们可以按照以下链接进行操作,docs.adobe.com/docs/en/dispatcher/disp-config.html#Specifying 要传递的 HTTP 标头 - /clientheaders 你有什么建议/指针吗?
  • 过滤器将拦截每个 HTTP 请求,即 html、js、css、图像等,这就是为什么它被多次调用的原因,正如您所观察到的。如果我必须从代​​码 sn-p 中的标头名称推断,这些似乎与安全性有关。您是否有理由不希望所有请求都使用这些标头?

标签: aem


【解决方案1】:

因为您使用的是 Component 范围,所以每次包含组件时都会调用此过滤器,这不是您的意图。

请使用请求范围:

scope = SlingFilterScope.REQUEST

请参阅此页面: https://sling.apache.org/documentation/the-sling-engine/filters.html

【讨论】:

  • 我试过 SlingFilterScope.REQUEST。它的相同问题...过滤器被称为 json,.png,.gif ....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2015-11-28
相关资源
最近更新 更多