Warum soll man einen User nicht nur mit einem Session identifizieren?

RezaScript

Bekanntes Mitglied
Hallo,

ich möchte gerne herausfinden, ob der User eingeloggt ist. Bislang habe ich das so gemacht:

Java:
public void setSession(Map<String, String> data, HttpSession session) {
    ...
    session.setAttribute("uid", user.getId());
}

Und bei jedem geschützten Aufruf überprüfe ich erst, ob die Session gesetzt ist.

Das funktioniert und erfüllt seinen Zweck aber Spring Boot schlägt vor, dass die Authentifizierung so erfolgt:
Java:
public void login(HttpServletRequest req, String user, String pass) {
    UsernamePasswordAuthenticationToken authReq
      = new UsernamePasswordAuthenticationToken(user, pass);
    Authentication auth = authManager.authenticate(authReq);
    
    SecurityContext sc = SecurityContextHolder.getContext();
    sc.setAuthentication(auth);
    HttpSession session = req.getSession(true);
    session.setAttribute(SPRING_SECURITY_CONTEXT_KEY, sc);
}

Wozu? und was ist hier der Unterschied?
 

Zurück
Oben