Nur eine einfache Frage: Was ist der beste Weg, Attribute (Eigenschaften) zur HttpSession bei der Erfolgsauthentifizierung hinzuzufügen? Die Benutzer-ID zum Beispiel.
Zur Zeit verwende ich meine eigene SimpleUrlAuthenticationSuccessHandler-Implementierung in UsernamePasswordAuthenticationFilter und mache es so:
%Vor%Aber ich denke nicht, dass dies ein guter Ansatz ist, da es eine andere Möglichkeit gibt, die Authentifizierung zu machen (zB RememberMe).
Was brauche ich also hier?
Die Antwort wurde im Frühjahrsforum gegeben. Link .
Im Allgemeinen muss ein ApplicationListener implementiert werden, der auf erfolgreiche Ereignisse wartet und dort zusätzliche Attribute in die Sitzung einfügt.
Aber in meinem Fall ist es nicht erforderlich, Attribute in der Sitzung zu speichern. Ich kann userID wie hier abrufen:
%Vor%Spring macht all das für Sie, Sie müssen eine Tabelle erstellen * persistent_logins *, hier ist ein Ausschnitt aus dem App-Kontext, der helfen könnte. Und die offiziellen Dokumente legen detailliert dar, was ist benötigt:
%Vor%und dann können Sie auf das Prinzipalobjekt von Ihrem beliebigen Ort in Ihrer App aus zugreifen, zB unten zeigt das Tag zur Ausgabe des Benutzernamens in jsp:
%Vor%und aus Ihrem Java-Code kann dies gemacht werden:
%Vor%Tags und Links session spring authentication spring-security