Class SecurityConfig
java.lang.Object
com.modulink.SecurityConfig
Classe di configurazione principale per la sicurezza dell'applicazione (Spring Security).
Definisce le regole di autorizzazione HTTP, la gestione del login/logout, la crittografia delle password e i filtri necessari per il corretto funzionamento dietro proxy o load balancer.
- Since:
- 1.0.0
- Version:
- 2.1.3
- Author:
- Modulink Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.springframework.security.core.userdetails.UserDetailsService -
Constructor Summary
ConstructorsConstructorDescriptionSecurityConfig(org.springframework.security.core.userdetails.UserDetailsService userDetailsService) Costruttore per l'iniezione del servizio di dettagli utente. -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.security.authentication.AuthenticationManagerauthenticationManager(org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration config) Espone il gestore delle autenticazioni come Bean.org.springframework.security.authentication.dao.DaoAuthenticationProviderConfigura il provider di autenticazione DAO.org.springframework.boot.web.servlet.FilterRegistrationBean<org.springframework.web.filter.ForwardedHeaderFilter> Registra il filtro per la gestione degli header inoltrati (X-Forwarded-For, X-Forwarded-Proto).org.springframework.security.crypto.password.PasswordEncoderDefinisce l'algoritmo di hashing per le password.org.springframework.security.web.SecurityFilterChainsecurityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity http) Configura la catena di filtri di sicurezza (Security Filter Chain).
-
Field Details
-
userDetailsService
private final org.springframework.security.core.userdetails.UserDetailsService userDetailsService
-
-
Constructor Details
-
SecurityConfig
public SecurityConfig(org.springframework.security.core.userdetails.UserDetailsService userDetailsService) Costruttore per l'iniezione del servizio di dettagli utente.- Parameters:
userDetailsService- Implementazione custom per il recupero dei dati utente.- Since:
- 1.0.0
-
-
Method Details
-
securityFilterChain
@Bean public org.springframework.security.web.SecurityFilterChain securityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity http) throws Exception Configura la catena di filtri di sicurezza (Security Filter Chain).Definisce:
- Disabilitazione CSRF (nota: valutare abilitazione in prod).
- Regole di accesso agli endpoint (whitelist per risorse pubbliche, autenticazione per il resto).
- Configurazione del Form Login (pagina custom, handler di successo/fallimento).
- Configurazione del Logout (pulizia sessione e cookie).
- Parameters:
http- OggettoHttpSecurityper la configurazione fluente.- Returns:
- La catena di filtri costruita.
- Throws:
Exception- In caso di errori di configurazione.- Since:
- 1.0.0
-
authenticationProvider
@Bean public org.springframework.security.authentication.dao.DaoAuthenticationProvider authenticationProvider()Configura il provider di autenticazione DAO.Collega il
UserDetailsServicecustom e ilPasswordEncoderper la verifica delle credenziali.- Returns:
- Il provider configurato.
- Since:
- 1.0.0
-
authenticationManager
@Bean public org.springframework.security.authentication.AuthenticationManager authenticationManager(org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration config) throws Exception Espone il gestore delle autenticazioni come Bean.- Parameters:
config- Configurazione di autenticazione di Spring.- Returns:
- L'AuthenticationManager.
- Throws:
Exception- Se impossibile recuperare il manager.- Since:
- 1.0.0
-
passwordEncoder
@Bean public org.springframework.security.crypto.password.PasswordEncoder passwordEncoder()Definisce l'algoritmo di hashing per le password.- Returns:
- Un'istanza di
BCryptPasswordEncoder. - Since:
- 1.0.0
-
forwardedHeaderFilter
@Bean public org.springframework.boot.web.servlet.FilterRegistrationBean<org.springframework.web.filter.ForwardedHeaderFilter> forwardedHeaderFilter()Registra il filtro per la gestione degli header inoltrati (X-Forwarded-For, X-Forwarded-Proto).Essenziale quando l'applicazione gira dietro un proxy inverso (es. Nginx, Load Balancer) per risolvere correttamente l'indirizzo IP del client e il protocollo (HTTP/HTTPS).
- Returns:
- Il bean di registrazione del filtro con precedenza massima.
- Since:
- 1.1.0
-