Spring Boot

āļžāļ·āđ‰āļ™āļāļēāļ™ Spring Security

Spring Security, āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™, āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒ, SecurityFilterChain, UserDetailsService, PasswordEncoder

25 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

Spring Security āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Spring Security āđ€āļ›āđ‡āļ™āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ Spring āļ—āļĩāđˆāđƒāļŦāđ‰āļŸāļĩāđ€āļˆāļ­āļĢāđŒāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđāļĨāļ°āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒ āļĄāļąāļ™āļ›āļāļ›āđ‰āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļˆāļēāļāļāļēāļĢāđ‚āļˆāļĄāļ•āļĩāļ—āļąāđˆāļ§āđ„āļ› (CSRF, XSS, session fixation) āđāļĨāļ°āļĄāļĩāļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāļāļąāļšāļāļĨāđ„āļāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ (form login, HTTP Basic, OAuth2, JWT) āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļāđƒāļŠāđ‰āļŦāđˆāļ§āļ‡āđ‚āļ‹āđˆāļŸāļīāļĨāđ€āļ•āļ­āļĢāđŒ (Security Filter Chain) āđ€āļžāļ·āđˆāļ­āļ”āļąāļāļˆāļąāļšāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ„āļģāļ‚āļ­ HTTP āļāđˆāļ­āļ™āļ—āļĩāđˆāļˆāļ°āđ„āļ›āļ–āļķāļ‡ controller

2

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđāļĨāļ°āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒāđƒāļ™ Spring Security āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ•āļąāļ§āļ•āļ™āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰ (āļ„āļļāļ“āđ€āļ›āđ‡āļ™āđƒāļ„āļĢ?) āđ‚āļ”āļĒāļ—āļąāđˆāļ§āđ„āļ›āļœāđˆāļēāļ™ username/password āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒāļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļīāļ—āļ˜āļīāđŒ (āļ„āļļāļ“āļ—āļģāļ­āļ°āđ„āļĢāđ„āļ”āđ‰āļšāđ‰āļēāļ‡?) āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļāđˆāļ­āļ™āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡ SecurityContext āļ—āļĩāđˆāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰ āļˆāļēāļāļ™āļąāđ‰āļ™āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒāļˆāļ°āđƒāļŠāđ‰āļ‚āđ‰āļ­āļĄāļđāļĨāļ™āļĩāđ‰āđ€āļžāļ·āđˆāļ­āļ•āļąāļ”āļŠāļīāļ™āļ§āđˆāļēāļœāļđāđ‰āđƒāļŠāđ‰āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ—āļĢāļąāļžāļĒāļēāļāļĢāđ€āļ‰āļžāļēāļ°āđ„āļ”āđ‰āļŦāļĢāļ·āļ­āđ„āļĄāđˆ āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ€āļŠāđˆāļ™ āļœāļđāđ‰āđƒāļŠāđ‰āļ­āļēāļˆāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļŠāļģāđ€āļĢāđ‡āļˆāđāļ•āđˆāđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļŠāļīāļ—āļ˜āļīāđŒāđƒāļŦāđ‰āđ€āļ‚āđ‰āļēāļ–āļķāļ‡ /admin āļŦāļēāļāļšāļ—āļšāļēāļ—āļ‚āļ­āļ‡āđ€āļ‚āļēāļ„āļ·āļ­ USER āđ„āļĄāđˆāđƒāļŠāđˆ ADMIN

3

SecurityContext āđƒāļ™ Spring Security āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

SecurityContext āđ€āļ›āđ‡āļ™āļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒāļ—āļĩāđˆāļšāļĢāļĢāļˆāļļāļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļĩāđˆāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ­āļĒāļđāđˆāđƒāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™ āđ‚āļ”āļĒāļŦāļĨāļąāļāļ„āļ·āļ­āļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒ Authentication āļĄāļąāļ™āļ–āļđāļāļˆāļąāļ”āđ€āļāđ‡āļšāđ„āļ§āđ‰āđƒāļ™ SecurityContextHolder āđāļĨāļ°āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āđ„āļ”āđ‰āļ•āļĨāļ­āļ”āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ„āļģāļ‚āļ­ āļŦāļĨāļąāļ‡āļˆāļēāļāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļŠāļģāđ€āļĢāđ‡āļˆ Spring Security āļˆāļ°āļŠāļĢāđ‰āļēāļ‡ SecurityContext āļ—āļĩāđˆāļšāļĢāļĢāļˆāļļ Authentication āļžāļĢāđ‰āļ­āļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰ (username, authorities, credentials) āļšāļĢāļīāļšāļ—āļ™āļĩāđ‰āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ„āļ”āđ‰āļ§āđˆāļēāļœāļđāđ‰āđƒāļŠāđ‰āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļ„āļ·āļ­āđƒāļ„āļĢāđāļĨāļ°āļĄāļĩāļŠāļīāļ—āļ˜āļīāđŒāļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡

4

SecurityContextHolder āļˆāļąāļ”āđ€āļāđ‡āļš SecurityContext āđ‚āļ”āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

5

āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹ UserDetails āđƒāļ™ Spring Security āļĄāļĩāļšāļ—āļšāļēāļ—āļ­āļ°āđ„āļĢ?

+22 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Spring Boot āļ­āļ·āđˆāļ™āđ†

Spring Core - IoC & DI

Junior
22 āļ„āļģāļ–āļēāļĄ

Spring Boot Auto-Configuration

Junior
20 āļ„āļģāļ–āļēāļĄ

Spring Boot Starters

Junior
18 āļ„āļģāļ–āļēāļĄ

Application Properties & YAML

Junior
16 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļģ Logging āļ”āđ‰āļ§āļĒ SLF4J āđāļĨāļ° Logback

Junior
20 āļ„āļģāļ–āļēāļĄ

Spring Boot DevTools

Junior
15 āļ„āļģāļ–āļēāļĄ

Spring MVC Basics

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Spring REST Controllers

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Request & Response Handling

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĒāļāđ€āļ§āđ‰āļ™

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Bean Validation

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Spring Data JPA

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āđ€āļ­āļ™āļ—āļīāļ•āļĩ JPA āđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒ

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļŠāļ·āļšāļ„āđ‰āļ™ JPA

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

Spring Data Repositories

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Spring Boot Actuator

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļŦāļ™āđˆāļ§āļĒāļ”āđ‰āļ§āļĒ JUnit āđāļĨāļ° Mockito

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļš Spring Boot

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

Profiles āđāļĨāļ° Environment

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

RestTemplate āđāļĨāļ° WebClient

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

Async āđāļĨāļ° Scheduling

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Caching āļ”āđ‰āļ§āļĒ Spring

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Spring WebFlux (Reactive)

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļ—āļĢāļēāļ™āđāļ‹āļāļŠāļąāļ™ Spring

Senior
30 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđāļĨāļ°āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒāļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
30 āļ„āļģāļ–āļēāļĄ

JWT āđāļĨāļ°āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļšāļš Stateless

Senior
20 āļ„āļģāļ–āļēāļĄ

OAuth2 āđāļĨāļ° Authorization Server

Senior
20 āļ„āļģāļ–āļēāļĄ

Spring Boot āđāļĨāļ° Docker

Senior
19 āļ„āļģāļ–āļēāļĄ

Microservices āļ”āđ‰āļ§āļĒ Spring

Senior
25 āļ„āļģāļ–āļēāļĄ

Spring Cloud Config

Senior
19 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Senior
30 āļ„āļģāļ–āļēāļĄ

GraalVM Native Images

Senior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Spring Boot āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ