如何在AuthenticationHandler之前调用Sling Filter?

时间:2014-08-13 11:24:22

标签: cq5 sling aem

我想在身份验证处理程序之前放置一个sling过滤器,但我没有运气。

从日志中我可以看到authandler总是在我的过滤器之后调用。有关于此的良好文档吗?是否可以在authenticationhandler之前放置一个过滤器?

当我将日志记录放入authandler的extractCredentials方法和Filter的doFilter方法时,两者都有效。但不幸的是我的过滤器是在authandler之后调用的。

这是我的日志:

11:50:55.924 AuthenticationHandler extractCredentials
11:50:56.004 Before chain.doFilter
11:50:56.332 After chain.doFilter

2 个答案:

答案 0 :(得分:2)

验证始终在过滤器处理之前完成:

  
      
  • 请求级别   
        
    • 验证
    •   
    • 资源解决方案
    •   
    • Servlet /脚本解析
    •   
    • 请求级别过滤处理
    •   
  •   

(来源:Sling documentation)。

因此,您无法创建在身份验证之前运行的过滤器。

答案 1 :(得分:0)

您可以使用 OSGI 预处理器,它将在调用身份验证之前充当过滤器,您将在此处找到规范和一个示例: https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.http.whiteboard.html#service.http.whiteboard.servlet.preprocessors