Ich mache einige Proof-of-Concept-Arbeiten mit Spring MVC und Sicherheit. Bisher habe ich es geschafft, eine einfache Web-App zu schreiben, die eine sichere Webseite hat, die einen Benutzer benötigt, um sich anzumelden und die richtige Rolle zu haben, bevor er auf die Datenbank zugreifen und einige Daten auflisten kann. Ich verwende übrigens Spring 2.0.8. Was ich benötige, ist, dass nach der Anmeldung des Benutzers auf das Benutzerhauptobjekt für die aktuelle Sitzung zugegriffen wird, um es an meine DAO-Schicht zu übergeben. Ich möchte dies durch die Standard-Bean-Verdrahtung zu tun, so wird es etwas zur Laufzeit bestimmt werden müssen. Irgendwelche Tipps für den Anfang? Vielen Dank Neil
Antwort
Zu viele Anzeigen?SecurityContextHolder#getContext() gibt einen SecurityContext zurück, der mit der aktuellen Benutzeranfrage verbunden ist.
Von dort aus können Sie getAuthentication().getPrincipal() aufrufen, um die mit dem angemeldeten Benutzer verbundenen Daten zu erhalten.
Es ist nicht notwendig, eine Bean zu injizieren, die statische Methode im SecurityContextHolder wird sich um den Zugriff auf die korrekten thread-lokalen Daten kümmern.