我知道AEM如何创建名为" login-token"认证成功后。
我的问题是AEM如何在每个请求中验证此Cookie?是否有任何过滤器可用于拦截请求然后验证cookie?如果没有,那么AEM如何再次调用吊索认证处理程序?
我在这里找不到http://host:port/system/console/status-slingfilter
请帮我澄清一下
答案 0 :(得分:5)
身份验证不是通过过滤器完成的。验证在过滤处理之前完成。
请求到达后,OSGi HttpService会调用与servlet / resource关联的HttpContext的handleSecurity。如果是Sling,则调用 SlingMainServlet .handleSecurity,调用SlingAuthenticator.authentication。
SlingAuthenticator 为请求选择 authenticationHandler 并转发身份验证呼叫。
身份验证处理程序实现 extractCredentials 方法(基于身份验证方案,例如基于授权标头的身份验证,基于会话的身份验证或基于cookie的身份验证)负责从cookie(或标头或会话)读取凭据。
成功验证后,它将返回 AuthenticationInfo ,如果验证失败,则获取匿名会话(如果每个配置允许匿名)或调用 requestCredentials 方法,渲染(或重定向到)登录表单。 在handleSecurity执行完成后,HttpService将终止请求(如果handleSecurity返回false)或调用 SlingMainServlet.service ,这将是Sling Request Processing的入口点。
之后将处理请求级别过滤器。见https://sling.apache.org/documentation/the-sling-engine/filters.html