Was ist der richtige Weg, um bei Verwendung von Spring Security Informationen zum aktuellen Benutzernamen (d. H. SecurityContext) in einer Bean abzurufen?

Ich habe eine Spring MVC-Webanwendung, die Spring Security verwendet. Ich möchte den Benutzernamen des aktuell angemeldeten Benutzers erfahren. Ich verwende das unten angegebene Code-Snippet. Ist das der akzeptierte Weg?

Ich mag es nicht, eine statische Methode in diesem Controller aufzurufen - das macht den ganzen Zweck von Spring zunichte, IMHO. Gibt es eine Möglichkeit, die App so zu konfigurieren, dass stattdessen der aktuelle SecurityContext oder die aktuelle Authentifizierung eingefügt wird?

  @RequestMapping(method = RequestMethod.GET)
  public ModelAndView showResults(final HttpServletRequest request...) {
    final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
    ...
  }

Antworten auf die Frage(17)

Ihre Antwort auf die Frage