Î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";
}
}
Întrebări & Exemple de Cod:
SecurityContextHolder și Obiectul AuthenticationAi o nelămurire despre utilizarea comenzii
SecurityContextHolder și Obiectul Authenticationsau 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.