[Spring e JS] Autenticazione per Login, Gestione token con AJAX?

di il
4 risposte

[Spring e JS] Autenticazione per Login, Gestione token con AJAX?

Buongiorno programmatori,

Sto cercando di capire come configurare client e server per garantire la sicurezza.

Lato server uso Spring Boot.

Essenzialmente il client durante la comunicazione si deve solo occupare di reinviare ogni qualvolta il Token JWT al server?

Pensavo dunque di non rendere necessario l'uso di Angular, questo per semplificare, ed usare uno script nei files del client.

Voi pensate che questo sia un modo di operare valido?

Ho trovato questo link che sembra utilissimo e ben fatto:

Spring Security - JWT (Voi che ne pensate?)

Tuttavia non ho capito come fa il client a re-inviare il token al server. La parte server mi sembra piuttosto chiara.

4 Risposte

  • Re: [Spring e JS] Autenticazione per Login, Gestione token con AJAX?

    Ciao, se non mi sbaglio per l'autenticazione di una applicazione monolitica in spring puoi utilizzare direttamente spring security senza jwt

    in pratica crei i tuoi file html-css-js e mediante thymeleaf li colleghi a spring (puoi farlo attraverso un controller)

    poi crei una configurazione di sicurezza (puoi utilizzare una classe java annotata con @Configuration), crei un metodo che restituisce un SecurityFilterChain e lo annoti come bean, e in quella configurazione (all'interno del security filter chain) specifichi qual è la pagina di login che contiene il form di autenticazione e quali pagine sono protette

    spring ti creerà una sessione JSESSIONID che utilizzerà per gestire l'accesso dell'utente alle aree protette

  • Re: [Spring e JS] Autenticazione per Login, Gestione token con AJAX?

    @Risposta Aggiornata

    Ciao, buongiorno, quindi vuoi dire che il token JWT è gestito autonomamente da Sping Security?

    Oppure lavora in modo differente?

    Il dialogo tramite token mi sembra piuttosto sicuro.

    @Aggiornamento

    Ho chiesto a Chat Gpt:

    Per una classica app MVC con Spring Boot + Thymeleaf, la gestione della sessione con Spring Security è più naturale. JWT ha senso se:

    • Vuoi un’API REST indipendente dal frontend
    • Vuoi supportare anche client mobili
    • Vuoi scalabilità senza sessione

    Se vuoi, posso anche mostrarti un’alternativa ibrida: login con form, gestione sessione, e token JWT solo per API.

    Non mi resta che configurare Spring Security.

    Meglio così.

  • Re: [Spring e JS] Autenticazione per Login, Gestione token con AJAX?

    Si esatto, spring security si integra benissimo con spring e per le architetture monolitiche (come quella che vuoi fare tu) è la best practice

    jwt invece si utilizza quando si utilizzano architetture N-tier dove non è possibile salvare le sessioni su un solo server, tuttavia richiede più configurazioni

    la differenza sostanziale tra spring security e spring security jwt è questa:

    spring security salva i riferimenti dell'utente loggato nel jsessionid (una sessione presente nel server di spring, che spring security gestisce in automatico)

    invece spring security modificato con jwt salva i riferimenti dell'utente loggato nel token jwt (in questo modo diversi server se lo possono scambiare)

    --

    in sintesi:

    spring security lavora con le sessioni

    spring security jwt lavora con i token

    --

    spring security è più automatico e facile da configurare, invece spring security con jwt richiede molte più configurazioni (e te lo dico per esperienza molti più mal di testa)

  • Re: [Spring e JS] Autenticazione per Login, Gestione token con AJAX?

    Perfetto, molto più chiaro ora, ciao e grazie.

Devi accedere o registrarti per scrivere nel forum
4 risposte