CQ如何验证每个请求?

Sum*_*ira 8 authentication jcr sling aem

我知道AEM在成功验证后如何创建名为"login-token"的cookie.

我的问题是AEM如何在每个请求中验证此cookie?是否有任何过滤器可用于拦截请求然后验证cookie?如果没有,那么AEM如何再次调用吊索认证处理程序?

我在这里找不到http:// host:port/system/console/status-slingfilter

请帮我澄清一下

awd*_*awd 5

身份验证不是通过过滤器完成的.验证在过滤处理之前完成.

一旦请求到达,OSGi HttpService就会调用与servlet/resource相关联的HttpContext的handleSecurity.在Sling的情况下,这个调用SlingMainServlet .handleSecurity调用SlingAuthenticator.authentication.

SlingAuthenticator为请求选择authenticationHandler并转发authenticate调用.

身份验证处理程序实现extractCredentials方法(基于身份验证方案,例如基于授权头的身份验证,基于会话的身份验证或基于cookie的身份验证)负责从cookie(或标头或会话)读取凭据.

成功验证后,它将返回AuthenticationInfo,如果验证失败,则获取匿名会话(如果每个配置允许匿名)或调用requestCredentials方法,这将呈现(或重定向到)登录表单.在handleSecurity执行完成后,HttpService将终止请求(如果handleSecurity返回false)或调用SlingMainServlet.service,这将是Sling Request Processing的入口点.

之后将处理请求级别过滤器.请参阅https://sling.apache.org/documentation/the-sling-engine/filters.html