Presretači u Spring Boot: Implementacija i korišćenje

Jul 1, 2024

Kreiranje i korišćenje presretača u Spring Boot

Uvod

  • Instruktor: Nilan iz The Tech Mojo
  • Tema: Kreiranje i korišćenje presretača u Spring Boot
  • Struktura videa:
    • Poglavlje 1: Uvod u Spring Interceptors
    • Poglavlje 2: Razlike između Spring Interceptors i Servlet Filters
    • Poglavlje 3: Implementacija i registracija presretača
    • Poglavlje 4: Redosled izvršavanja presretača
    • Poglavlje 5: Kreiranje presretača za osnovne provjere autentičnosti

Poglavlje 1: Uvod u Spring Interceptors

  • Svrha: Presretanje klijentovih zahteva pre nego što ih kontroler obradi
  • Upotreba:
    • Prikupljanje HTTP zahteva i odgovora za debagovanje ili praćenje performansi
    • Primena sigurnosnih politika (npr. provera korisničke autentičnosti)
    • Keširanje HTTP zahteva i odgovora
    • Transformacija HTTP zahteva i odgovora (npr. konverzija JSON-a u XML)
  • Radni tok u Spring Boot:
    • Server prima zahtev i prosleđuje ga Spring Boot aplikaciji
    • Dispatcher servlet prima zahtev i konsultuje URL Handler mapping
    • Handler mapping određuje odgovarajući kontroler

Poglavlje 2: Razlika između Spring Interceptors i Servlet Filters

  • Servlet Filters:
    • Deo Servlet API, rade na nižem nivou
    • Presreću životni ciklus zahteva i odgovora, nisu specifični za Spring Framework
  • Spring Interceptors:
    • Deo Spring Web MVC, zahtevaju Spring kontekst aplikacije
  • Odlučivanje šta koristiti:
    • Koristite presretače za zadatke koji zahtevaju Spring MVC
    • Koristite filtere za opšte zadatke koji ne zahtevaju Spring

Poglavlje 3: Implementacija i registracija presretača

  • Kreiranje klase presretača: Implementira HandlerInterceptor interfejs
    • Metode:
      • preHandle: Izvršava se pre kontrolera, vraća boolean
      • postHandle: Izvršava se nakon kontrolera ali pre slanja odgovora
      • afterCompletion: Izvršava se nakon završetka zahteva (za zadatke čišćenja)
  • Registracija presretača:
    • Kreirajte klasu koja implementira WebMvcConfigurer
    • Njanovo piše addInterceptors metodu
    • Dodajte presretač u InterceptorRegistry

Poglavlje 4: Redosled izvršavanja presretača

  • Redosled izvršavanja:
    • Više presretača može biti dodato
    • Navedite redosled koristeći @Order anotaciju
    • Prvi u pre-handle, obrnut redosled u post-handle i posle završetka
    • Dat je primer kako redosled utiče na izvršenje

Poglavlje 5: Kreiranje presretača za osnovne provjere autentičnosti

  • Cilj: Osigurati autentifikovane zahteve za određene krajnje tačke
  • Koraci:
    • Ekstraktovati i dekodirati Authorization zaglavlje
    • Validirati korisničko ime i lozinku prema unapred definisanim vrednostima
    • Implementirati logiku u preHandle metodi za provjere autentičnosti

Primer: Dodavanje i testiranje presretača

  • Kreiranje LogHandlerInterceptor:
    • Implementira HandlerInterceptor
    • Beleži tok zahteva u preHandle, postHandle i afterCompletion metodama
  • Registracija LogHandlerInterceptor
  • Kreiranje BasicAuthHandlerInterceptor:
    • Nasleđuje LogHandlerInterceptor
    • Izvodi osnovnu autentifikaciju validacijom prema hardkodiranim akreditivima
  • Testiranje presretača:
    • Koristite Postman za testiranje krajnjih tačaka sa i bez ispravnih akreditiva
    • Posmatrajte zapise za redosled izvršenja presretača

Zaključak

  • Sažetak dodavanja i korišćenja presretača za razne zadatke u Spring Boot aplikaciji
  • Podsticanje na postavljanje pitanja i pružanje povratnih informacija
  • Pretplatite se za više sadržaja