2024.11.10 ๊ฐ์ธ์ ์ธ ์ ๋ฆฌ์ฉ ๊ธ
์คํ๋ง๋ถํธ 2.7.18 ๋ฒ์ / Maven
๊ตฌ์ฒด์ ์ธ ๊ณต๋ถ ๋ด์ฉ์ ๊นํ๋ธ ๊ฐ์ธ ๋ฆฌํฌ์งํ ๋ฆฌ(oauth1110)์ ์ ๋ฆฌํด๋์๋ค.
์ค๋ ์๋ก ์๊ฒ ๋ ์ ์
1. ์คํ๋ง ์ํ๋ฆฌํฐ ์ค์ ํ์ผ์ @EnableWebSecurity ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ฃผ๋ฉด
์คํ๋ง ์ํ๋ฆฌํฐ ํํฐ๋ฅผ ์คํ๋ง ํํฐ ์ฒด์ธ์ ๋ฑ๋กํ ์ ์๋ค.
2. ์คํ๋ง ์ํ๋ฆฌํฐ๋ ํจ์ค์๋ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ ์ธ์ฝ๋ฉ ๋ ํจ์ค์๋ ๊ธฐ์ค์ผ๋ก ์ฒดํฌํ๊ธฐ ๋๋ฌธ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธํ๋์ง ์์ ํจ์ค์๋๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ ์ธ์ฆ์คํจํ๋ค.
3. ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฒฝ์ฐ
๋ก๊ทธ์ธ ์ฑ๊ณตํ๋ฉด, ์คํ๋ง ์ํ๋ฆฌํฐ๋ ์ธ์ ์์ญ ์ค ์ํ๋ฆฌํฐ ์ธ์ ์์ญ์ Authentication ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
(์ธ์ ์์ญ ์ค ์ ํํ๋ SecurityContextHolder์ SecurityContext์ ์ ์ฅํ๋ค.)
์ด๊ฒ์ด ์ ๋๋ก ๋์ํ๊ฒ ํ๋ ค๋ฉด,
UserDetailsService ์ธํฐํ์ด์ค์ UserDetails ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ๋ง๋ค์ด์ ์คํ๋ง๋น์ผ๋ก ๋ฑ๋กํด์ผ ํ๋ค.
(1) UserDetails ์ธํฐํ์ด์ค ๊ตฌํ์ฒด๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ์ด์
- Authentication ๊ฐ์ฒด๋ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ UserDetails ๊ฐ์ฒด๋ฅผ ๋ค๊ณ ์๊ณ ,
์ด UserDetails ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์ธ์ฆ์ ์งํํ๊ธฐ ๋๋ฌธ์ด๋ค.
(2) UserDetailsService ์ธํฐํ์ด์ค ๊ตฌํ์ฒด๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ์ด์
- ์คํ๋ง ์ํ๋ฆฌํฐ๋ ๋ก๊ทธ์ธ ์์ฒญ์ ๋ฐ์ผ๋ฉด UserDetails ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด์
UserDetailsService ํ์
์ ๋น์ ์ฐพ์์, ํด๋น ์ธ์คํด์ค์ loadByUsername() ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ด๋ค.
4. @Secured, @PreAuthorize ๋ฑ์ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด
์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์ธ๊ฐ ์ค์ ์ ํด์ค ์ ์๋ค.
'๊ฐ์ธ ๊ณต๋ถ > WEB-Spring,SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ddl-auto ์ต์ (0) | 2024.11.19 |
---|---|
์ฉ๊ตฌํํ๋ ๊ตฌ๊ธ OAuth ์ธ์ฆ ํ๋ก์ ํธ์ Spring Security ์ ์ฉํ๊ธฐ (0) | 2024.11.18 |
[TIL] Spring Security, OAuth2 Client ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐ์ง ์๊ณ ๊ตฌ๊ธ OAuth ํ์๊ฐ์ ๊ตฌํํ๊ธฐ (2) | 2024.11.17 |
์คํ๋ง ์ํ๋ฆฌํฐ & OAuth๋ก ๊ตฌ๊ธ ๊ฐํธ ๋ก๊ทธ์ธ, ํ์๊ฐ์ ์ํค๊ธฐ (2) | 2024.11.12 |
Spring Framework์ ๊ฐ์ฒด์งํฅ (0) | 2024.08.13 |