Spring Security
Opis
Z jednej strony bezpieczeństwo aplikacji, to jeden z najbardziej kluczowych aspektów tworzonych systemów. Z drugiej strony kompetencje programistów w tym obszarze są często połowiczne, a bezpieczeństwo jest jedną z ostatnich rzeczy branych pod uwagę podczas implementacji przez zespół deweloperski lub zwyczajnie ignorowanych. Celem szkolenia jest praktyczne przekazanie umiejętności związanych z użyciem Spring Security oraz pełne zrozumienie jego mechanizmów. Zakres tematów dotyczy zarówno bezpieczeństwo na poziomie metod jak i aplikacji sieciowej, zarówno w podejściu klasycznym jak i reaktywnym. Szkolenie dotyczy ostatniej dużej oficjalnie wydanej wersji Spring Security.
Szczegółowy program
Moduł 1.
Wprowadzenie
- Wprowadzenie do Spring Security
- Rola AOP oraz filtru serwletowego
- Autokonfiguracja
Moduł 2.
Bazowy przykład
- Przykładowe Hello Security
- Co wnosi autokonfiguracja?
- Składowe architektury
- Główne cechy Spring Security
Moduł 3.
Autentykacja
- Czym jest autentykacja?
- Autentykacja In-Memory
- Authentykacja JDBC
- Autentykacja LDAP
- Login i logout
- Interfejs AuthenticationProvider i jego implementacja
- Interfejs UserDetailsServices i jego implementacja
- Architektura autentykacji dla WebFlux
- Audit Events
Moduł 4.
Uwierzytelnianie aplikacji sieciowej
- Czym jest uwierzytelnianie?
- Bazowy przykład
- Konfiguracja uwierzytelniania aplikacji sieciowej
- Składowe API uwierzytelniania aplikacji sieciowej
- Konfiguracja uwierzytelniania dla WebFlux
- Składowe API uwierzytelniania dla WebFlux
- Actuator
Moduł 5.
Ochrona przed atakami
- Cache Control
- HTTPS
- XSS
- Content Sniffing
- CORS
- CSRF
- Własne repozytorium tokenów CSRF
- Session Fixation
- Click Jacking
- CSP
- RFD Attacks
- HttpFirewall
Moduł 6.
Uwierzytelnianie na poziomie wywołania metod
- Do czego może być przydatne bezpieczeństwo na poziomie metod?
- Definiowanie ról
- Przykładowa aplikacja
- Integracja z innymi mechanizmami Spring Security
- Uwierzytelnianie dla reaktywnego API
- JSR 250, @Secured, @PreAuthorize/@PostAuthorize
- Spring Data integration
Moduł 7.
OAuth2
- Wprowadzenie do OAuth2
- Różne warianty OAuth2
- Bazowa konfiguracja
- Serwer zasobów (Resource Server)
- Integracja z WebClient
- Implementacja wariantu Authorization Code
Moduł 8.
Testowanie bezpieczeństwa Spring Security
- Testowanie bezpieczeństwa na poziomie wywołania metod
- Testowanie bezpieczeństwa aplikacji sieciowej z użyciem MockMvc
- Testowanie bezpieczeństwa aplikacji sieciowej z użyciem HtmlUnit
- Testowanie bezpieczeństwa aplikacji sieciowej z użyciem WebTestClient