2016-02-12 40 views
8

Sono a conoscenza di come AEM crea un cookie chiamato "login-token" dopo l'autenticazione riuscita.Come CQ autentica ogni richiesta?

La mia domanda è come AEM convalida questo cookie in ogni richiesta? È disponibile un filtro per intercettare la richiesta e quindi convalidare i cookie? in caso contrario, in che modo AEM richiama di nuovo il gestore di autenticazione sling?

non ho potuto trovare qui http://host:port/system/console/status-slingfilter

favore mi aiuti a chiarire questa autenticazione

risposta

5

non è fatto attraverso un filtro. l'autenticazione viene eseguita prima dell'elaborazione del filtro.

non appena la richiesta arriva OSGi HttpService chiama handleSecurity del HttpContext associato al servlet/risorsa. In caso di Sling, chiamate in SlingMainServlet .handleSecurity che chiama SlingAuthenticator.authentication.

SlingAuthenticator seleziona un authenticationHandler per la richiesta e inoltra la chiamata autenticazione.

gestore di autenticazione implementa extractCredentials metodo che (basato sul sistema di autenticazione di autenticazione basato, ad esempio l'autenticazione basata su sessione di intestazione di autorizzazione o di autenticazione basata cookie) è responsabile per la lettura di credenziali da biscotti (o intestazione o della sessione).

Sarebbe tornare AuthenticationInfo dopo l'autenticazione, se l'autenticazione non riesce neanche una sessione anonima viene acquisito (se anonimo è consentito per ogni configurazione) o requestCredentials metodo viene chiamato, che renderebbe (o reindirizzare a) un modulo di accesso . dopo l'esecuzione di handleSecurity, HttpService interromperà la richiesta (se handleSecurity ha restituito false) o chiama SlingMainServlet.service che sarebbe il punto di ingresso per l'elaborazione di richieste di sincronizzazione.

Successivamente, i filtri del livello di richiesta verranno elaborati. vedi https://sling.apache.org/documentation/the-sling-engine/filters.html

+0

nell'istanza dell'autore, ogni richiesta passerà attraverso SlingMainServlet? –

+0

Intendo sia nell'autore sia nell'istanza di pubblicazione tutte le richieste passeranno attraverso SlingMainServlet? –

+0

Sì. L'autore o la pubblicazione non ha importanza. – awd