Class CustomUserDetails
- All Implemented Interfaces:
Serializable, org.springframework.security.core.userdetails.UserDetails
UserDetails di Spring Security.
Questa classe funge da "Adapter" (ponte) tra l'entità del database UtenteEntity
e il sistema di autenticazione di Spring Security. Permette al framework di leggere
le credenziali (email/password) e le autorizzazioni (ruoli) dell'utente per gestire
il contesto di sicurezza (SecurityContext).
- Version:
- 1.2.5
- Author:
- Modulink Team
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCostruttore che incapsula l'entità Utente. -
Method Summary
Modifier and TypeMethodDescriptionCollection<? extends org.springframework.security.core.GrantedAuthority> Restituisce le autorizzazioni concesse all'utente.Restituisce la password dell'utente utilizzata per l'autenticazione.getUser()Metodo getter aggiuntivo per recuperare l'entità Utente originale.Restituisce il nome utente utilizzato per l'autenticazione.booleanIndica se l'account dell'utente è scaduto.booleanIndica se l'account è bloccato o sospeso.booleanIndica se le credenziali (password) sono scadute.booleanIndica se l'utente è abilitato.
-
Field Details
-
user
-
-
Constructor Details
-
CustomUserDetails
Costruttore che incapsula l'entità Utente.- Parameters:
user- L'oggetto utente recuperato dal database.
-
-
Method Details
-
getAuthorities
Restituisce le autorizzazioni concesse all'utente.Il metodo itera sul
Set<RuoloEntity>dell'utente e converte ogni ruolo in un oggettoSimpleGrantedAuthority.Nota: Viene aggiunto il prefisso "ROLE_" al nome del ruolo (convertito in maiuscolo). Questo è lo standard di Spring Security (es. se il ruolo è "admin", diventa "ROLE_ADMIN") necessario per l'utilizzo corretto di espressioni come
hasRole('ADMIN').- Specified by:
getAuthoritiesin interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
- Una collezione di autorità (ruoli) derivate dai ruoli dell'entità.
-
getPassword
Restituisce la password dell'utente utilizzata per l'autenticazione.- Specified by:
getPasswordin interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
- L'hash della password memorizzato nel database.
-
getUsername
Restituisce il nome utente utilizzato per l'autenticazione.Nel sistema Modulink, il nome utente univoco corrisponde all'indirizzo email.
- Specified by:
getUsernamein interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
- L'email dell'utente.
-
isAccountNonExpired
public boolean isAccountNonExpired()Indica se l'account dell'utente è scaduto.Attualmente restituisce sempre
true, indicando che l'account non scade mai. Implementare logica qui se si desidera gestire scadenze temporali degli account.- Specified by:
isAccountNonExpiredin interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
true(account sempre valido in questa implementazione).
-
isAccountNonLocked
public boolean isAccountNonLocked()Indica se l'account è bloccato o sospeso.Attualmente restituisce sempre
true. Da implementare se si desidera bloccare utenti dopo troppi tentativi di accesso falliti.- Specified by:
isAccountNonLockedin interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
true(account non bloccato).
-
isCredentialsNonExpired
public boolean isCredentialsNonExpired()Indica se le credenziali (password) sono scadute.Attualmente restituisce sempre
true. Da implementare per forzare il cambio password periodico.- Specified by:
isCredentialsNonExpiredin interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
true(credenziali sempre valide).
-
isEnabled
public boolean isEnabled()Indica se l'utente è abilitato.In futuro, questo metodo potrebbe restituire il valore di un campo "is_attivo" presente nel database (es. per gestione ban o attivazione via email). Attualmente assume che ogni utente presente nel DB sia attivo.
- Specified by:
isEnabledin interfaceorg.springframework.security.core.userdetails.UserDetails- Returns:
true(utente sempre abilitato per default).
-
getUser
Metodo getter aggiuntivo per recuperare l'entità Utente originale.Utile nei Controller o Service layer quando si accede al
Principale si ha bisogno di accedere a dati non standard diUserDetails(es. ID Azienda, Nome, Cognome, Immagine Profilo).- Returns:
- L'oggetto
UtenteEntityoriginale completo.
-