Class SecurityConfig

java.lang.Object
com.modulink.SecurityConfig

@Configuration public class SecurityConfig extends Object
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

    Fields
    Modifier and Type
    Field
    Description
    private final org.springframework.security.core.userdetails.UserDetailsService
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    SecurityConfig(org.springframework.security.core.userdetails.UserDetailsService userDetailsService)
    Costruttore per l'iniezione del servizio di dettagli utente.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.springframework.security.authentication.AuthenticationManager
    authenticationManager(org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration config)
    Espone il gestore delle autenticazioni come Bean.
    org.springframework.security.authentication.dao.DaoAuthenticationProvider
    Configura 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.PasswordEncoder
    Definisce l'algoritmo di hashing per le password.
    org.springframework.security.web.SecurityFilterChain
    securityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity http)
    Configura la catena di filtri di sicurezza (Security Filter Chain).

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 - Oggetto HttpSecurity per 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 UserDetailsService custom e il PasswordEncoder per 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