AEM 6.x:如何临时/编程禁用链接检查程序? (尝试将带有链接的JSON返回给浏览器)

时间:2018-05-30 23:43:35

标签: aem sling

所以我有一个Sling servlet从另一个API读取数据(让我们称之为APIX),APIX为我提供JSON格式的数据。

当我调试我的代码时,似乎我从APIX获得的响应完好无损。

当我从APIX传递给浏览器的JSON时,我可以看到AEM已经“链接检查”了我在JSON中的所有链接。我不希望AEM对我的数据做任何事情。

基于此Adobe page,我在代码中添加了这些行:

protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
  LinkCheckerSettings linkCheckerSettings = LinkCheckerSettings.fromRequest(request);
  linkCheckerSettings.setIgnoreExternals(true);

  //body of the code here

  response.setCharacterEncoding("UTF-8");
  response.setContentType("application/json;charset=UTF-8");

  printWriter.write(jsonResponse);

  linkCheckerSettings.setIgnoreExternals(false);
}

没效果。我仍然可以看到这些字符串

<img src="/libs/cq/linkchecker/resources/linkcheck_o.gif" alt="invalid link: _blank\\" title="invalid link: _blank\\" border="0">

随处可见。

然后我尝试禁用Linkchecker(通过configMgr/Day CQ Link Checker Transformer)但仍无效果。

我该怎么做?

我通过在浏览器中输入此URL来调用Slng servlet:http://localhost:4502/servlets/getpublications?name=john.smith

谢谢!

修改

这是我从APIX获得的JSON数据示例(在IntelliJ上调试):

"LINKS":[
        "<a x-cq-linkchecker=\"skip\" target=\"_blank\" href=\"http:\/\/www.google23.com\">[Web Link]<\/a>"
        ]

这就是我在浏览器上获得的内容(标签以某种方式被img标签取代)

"LINKS":[
         "<img src="/libs/cq/linkchecker/resources/linkcheck_o.gif" alt="invalid link: _blank\\" title="invalid link:_blank\\" border="0">                        [Web Link]<\/a>"
        ]

我已尝试使用有效和跳过x-cq-linkchecker但没有任何反应。

Day CQ Link Checker Transformer配置截图

enter image description here

2 个答案:

答案 0 :(得分:1)

我不认为建议在全局范围内禁用LinkChecker。还有一些方法可以实现这一点,并将限制仅限于某些用例 -

  1. 如果该链接包含tel:mailto:等特殊前缀,则您必须将其添加到Day CQ Link Checker Service中的/system/console/configMgr,以禁用这些链接的LinkChecker。
  2. 将此参数x-cq-linkchecker="valid"添加到<img>标记,以确保链接在AEM中标记为有效 - 即使AEM认为它们无效。
  3. 您还可以使用x-cq-linkchecker="skip"跳过此元素的链接检查器验证。
  4. 更新上述参数(2.和3)后,您可能会遇到缓存问题,只需在开始测试之前尝试删除/var/linkchecker中的内容。

答案 1 :(得分:1)

处理特殊网址格式有多种技巧,请参阅here。还有一个非常好的链接检查指南here

技术1:编码方式(不推荐,因为不可维护)。添加课程x-cq-linkchecker=”skip”

技巧2:禁用链接检查器。绝对不在作者推荐。作者应该见证可见的断链。但是,建议在发布时禁用,而不是显示丑陋的链接图标。

技巧3:添加特殊url pattern。您的链接检查器应如下所示: enter image description here