如何处理Adobe CQ 5.5中任何页面的外部POST请求

时间:2015-09-07 11:19:37

标签: cq5 aem

我们需要什么:如何在任何页面上执行外部POST请求?

我们为什么需要:我们正在为客户使用Adobe CQ开发安全的Intranet门户。对Intranet门户的任何Adobe CQ页面的任何请求都会重定向到客户端的界面。这是一个外部系统,它生成一个TOKEN,并通过POST方法通过HTTP请求将此令牌作为请求参数发送给CQ。

我们根据此令牌设置我们的Cookie,该令牌需要成为每个页面的一部分。 (我们正在使用页面组件的inhertiance并在根级别设置它们)

需要有关如何实现这一目标的建议。如果需要更多细节,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以定义servlet接受的方法,因此可以使用JSP处理GET,使用SlingAllMethodsServlet处理POST。

@Component(metatype = false)
@SlingServlet(resourceTypes = "cq:Page", methods = "POST", generateComponent = false)
public class MyPOSTServlet extends SlingAllMethodsServlet {
    @Override
    protected void doPost(final SlingHttpServletRequest request,
            final SlingHttpServletResponse response) throws ServletException,
            IOException {
        //your logic here
    }
}

这应该针对所有页面触发。

关于您的问题下面的评论,永远不要有/content的servlet路径。固定虚拟路径,例如/bin/myservletresourceType。 查看Sling的文档:https://sling.apache.org/documentation/the-sling-engine/servlets.html