SecurityContextHolder și Obiectul Authentication în Spring Boot

security Spring Boot 3.x / Spring Security 6 Q&A / Distribuie cod

Accesarea identității utilizatorului conectat curent din ThreadLocal: extragerea numelui, rolurilor și a detaliilor de autentificare.

Sintaxă
SecurityContextHolder.getContext().getAuthentication()

În timpul procesării unei cereri HTTP, Spring Security stochează detaliile utilizatorului autentificat în obiectul SecurityContextHolder, care folosește implicit mecanismul ThreadLocal pentru a izola datele pe firul curent de execuție.

Prin apelul SecurityContextHolder.getContext().getAuthentication(), orice serviciu din aplicație poate accesa direct obiectul Authentication fără a mai fi necesară transmiterea identității prin parametri de metodă.

Exemplu: Preluarea utilizatorului curent logat într-un serviciu
package ro.dexblog.demo.util;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;

@Component
public class CurrentUserProvider {

    public String getCurrentUsername() {
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        if (auth != null && auth.isAuthenticated()) {
            return auth.getName();
        }
        return "ANONYMOUS";
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: SecurityContextHolder și Obiectul Authentication

Ai o nelămurire despre utilizarea comenzii SecurityContextHolder și Obiectul Authentication sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.