Wie CQ jede Anfrage authentifizieren?

8

Ich bin mir bewusst, dass AEM nach erfolgreicher Authentifizierung einen Cookie namens "login-token" erstellt.

Meine Frage ist, wie AEM dieses Cookie in jeder Anfrage validiert? Gibt es einen Filter, um die Anfrage abzufangen und dann den Cookie zu validieren? wenn nicht, wie AEM dann erneut sling authentication handler aufruft?

Ich konnte hier Ссылка

nicht finden

Bitte helfen Sie mir, dies zu klären

    
Sumanta Pakira 12.02.2016, 09:06
quelle

1 Antwort

5

Die Authentifizierung erfolgt nicht über einen Filter. Die Authentifizierung wird vor der Filterverarbeitung durchgeführt.

Sobald die Anfrage eintrifft, ruft OSGi HttpService die HandleSecurity des HttpContext auf, der dem Servlet / der Ressource zugeordnet ist. Im Fall von Sling ruft dies SlingMainServlet .handleSecurity auf, das SlingAuthenticator.authentication aufruft.

SlingAuthenticator wählt für die Anforderung einen authenticationHandler aus und leitet den Authentifizierungsaufruf weiter.

Der Authentifizierungshandler

implementiert die extractCredentials -Methode, die (basierend auf dem Authentifizierungsschema, z. B. autorisierungskopfbasierte Authentifizierung, sitzungsbasierte Authentifizierung oder cookiebasierte Authentifizierung) für das Lesen von Anmeldeinformationen von Cookies (oder Header oder Sitzung) verantwortlich ist.

Nach erfolgreicher Authentifizierung wird AuthenticationInfo zurückgegeben. Wenn die Authentifizierung fehlschlägt, wird entweder eine anonyme Sitzung erworben (wenn pro Konfiguration anonym erlaubt ist) oder die Methode requestCredentials aufgerufen ein Login-Formular übertragen (oder umleiten). Nach der Ausführung von handleSecurity beendet HttpService entweder die Anfrage (falls handleSecurity false zurückgegeben hat) oder ruft SlingMainServlet.service auf, was der Einstiegspunkt für die Verarbeitung von Sling-Anfragen wäre.

Request-Level-Filter würden danach verarbeitet werden. siehe Ссылка

    
awd 13.02.2016 03:44
quelle

Tags und Links