์ค๋ ํ ๊ณต๋ถ ๐ง
ํ์ ๊ณผ์ ํด๊ฒฐ
- Spring Security
- ์ธ์ฆ, ๊ถํ ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ๋ณดํธ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ์น ๊ฐ๋ฐ ๊ณผ์ ์์ ํ์์ ์ธ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ๋์์ ์ฃผ๋ Spring์ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ์ด๋ค.
- ์ฌ์ฉํ๋ ์ด์
- Spring Security๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ Spring์ ์ํ๊ณ์์ ๋ณด์์ ํ์ํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ์ ์ ์ฅ์์ ์ผ์ผ์ด ๋ณด์ ๊ด๋ จ ๋ก์ง์ ์์ฑํ์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์๋ค. Spring Security๋ Spring์ด๋ผ๋ ํ๋ ์์ํฌ์์ ํ์ฉํ๊ธฐ ์ ์ ํ ๊ตฌ์กฐ๋ก, ๋ณด์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ํ์ฉํ๊ธฐ ์ข๋ค. ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ ๊ฒฝ์ฐ Spring์์ ์ถ๊ตฌํ๋ IoC/DI ํจํด๊ณผ ๊ฐ์ ํ์ฅ ํจํด์ ๊ณ ๋ คํ์ฌ ์ธ์ฆ/์ธ๊ฐ ๋ถ๋ถ์ ์ง์ ๊ฐ๋ฐํ๊ธฐ ์ฝ์ง ์์ง๋ง, Spring Security์์๋ ์ด์ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ์์ ํจ์จ์ ๋์ผ ์ ์๋ค. ๊ทธ๋ฌ๋, Spring Security๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์ง์ Session์ ์ฒดํฌํ๊ณ redirect ๋ฑ์ ํด์ผ ํ๋ค.
- Spring Security ์ํคํ ์ฒ
- ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ์ ๋ณด์ ํจ๊ป ์ธ์ฆ ์์ฒญ์ ํฉ๋๋ค.
- AuthenticationFilter๊ฐ ์์ฒญ์ ๊ฐ๋ก์ฑ์ UsernamePasswordAuthenticationToken์ ์ธ์ฆ์ฉ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
- AuthenticationManager์ ๊ตฌํ์ฒด์ธ ProviderManager์๊ฒ ์์ฑํ UsernamePasswordToken ๊ฐ์ฒด๋ฅผ ์ ๋ฌํฉ๋๋ค.
- AuthenticationManager๋ ๋ฑ๋ก๋ AuthenticationProvider๋ค์ ์กฐํํ์ฌ ์ธ์ฆ์ ์๊ตฌํฉ๋๋ค.
- ์ค์ DB์์ ์ฌ์ฉ์ ์ธ์ฆ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ UserDetailsService์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋๊ฒจ์ค๋๋ค.
- ๋๊ฒจ๋ฐ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํตํด DB์์ ์ฐพ์ ์ฌ์ฉ์ ์ ๋ณด์ธ UserDetails ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค.
- AuthenticationProvider๋ค์ UserDetails๋ฅผ ๋๊ฒจ๋ฐ๊ณ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋น๊ตํฉ๋๋ค.
- ์ธ์ฆ์ด ์๋ฃ๋๋ฉด ๊ถํ ๋ฑ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ด์ Authentication ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
- ๋ค์ ์ต์ด์ AuthenticationFilter์ Authentication ๊ฐ์ฒด๊ฐ ๋ฐํ๋ฉ๋๋ค.
- Authentication ๊ฐ์ฒด๋ฅผ SecurityContext์ ์ ์ฅํฉ๋๋ค.
- SecurityContextHolder๋ ์ธ์ ์์ญ์ ์๋ SecurityContext์ Authentication ๊ฐ์ฒด๋ฅผ ์ ์ฅํฉ๋๋ค.
์ค๋ ํ์ค ์ ๋ฆฌ โ๏ธ
์ค๋์ ํ๋ฃจ์ข ์ผ ์ง์ค์ด ์๋์ ๊ณต๋ถ๋ฅผ ๊ฑฐ์ ์ํ ๋๋์ด๋ค...
์ฃผ๋ง ๊ณํ โฐ
- ๋ถ์ฐ ๊ฐ์ ๋์ฅ๋๊ฒ ๋๊ณ ์ค๊ธฐ ๐
'โ๏ธ Today I Learned(TIL) > ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ TIL ] ํ๋ฌ์ค ํ๋ก์ ํธ_Day 6 (0) | 2025.02.05 |
---|---|
[ TIL ] ํ๋ฌ์ค ํ๋ก์ ํธ_Day 5 (0) | 2025.02.05 |
[ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 3 (2) | 2025.01.23 |
[ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 1 (2) | 2025.01.21 |
[ TIL ] JPA ์ฌํ_Day 7 (0) | 2025.01.20 |