我知道AEM在成功验证后如何创建名为“login-token”的cookie。CQ如何验证每个请求?
我的问题是AEM如何验证在每次请求这个cookie?是否有任何筛选器可用于拦截请求并验证cookie?如果不是,那么AEM如何再次调用吊索认证处理程序?
我不能在这里找到http://host:port/system/console/status-slingfilter
请帮我澄清这个
我知道AEM在成功验证后如何创建名为“login-token”的cookie。CQ如何验证每个请求?
我的问题是AEM如何验证在每次请求这个cookie?是否有任何筛选器可用于拦截请求并验证cookie?如果不是,那么AEM如何再次调用吊索认证处理程序?
我不能在这里找到http://host:port/system/console/status-slingfilter
请帮我澄清这个
认证不通过过滤器来完成。过滤处理之前完成认证。
尽快请求到达的OSGi HttpService的调用和servlet /资源关联的HttpContext的handleSecurity。在吊带的情况下,这个要求到SlingMainServlet .handleSecurity这就要求SlingAuthenticator.authentication。
SlingAuthenticator选择一个的AuthenticationHandler该请求并转发该呼叫身份验证。
认证处理程序实现extractCredentials方法(基于身份验证方案例如授权报头基础的认证,基于会话的认证或基于cookie验证)是负责读取从饼干(或报头或会话)凭证。
这将成功认证之后返回AuthenticationInfo,如果认证失败或者匿名会话被获取(如果匿名的每个配置允许)或requestCredentials方法被调用,这将使(或重定向到)一个登录表单。 handleSecurity执行完成后 ,HttpService的要么终止请求(如果handleSecurity返回false),或致电SlingMainServlet.service这将是吊带请求处理的切入点。
Request级过滤器会后进行处理。看到https://sling.apache.org/documentation/the-sling-engine/filters.html
在笔者例如,每个请求会经过SlingMainServlet? –
我的意思是在作者和发布实例中,所有的请求都会经过SlingMainServlet? –
是的。作者或发布并不重要。 – awd