我想在身份验证处理程序之前放置一个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
答案 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