๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring

์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ Authentication

Authentication

์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์˜ ๋กœ๊ทธ์ธ ๊ณผ์ •์—์„  Authentication์˜ ์ƒ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค.

์ „์ฒด ๊ณผ์ •

์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ์˜ ์ „์ฒด์ ์ธ ๊ณผ์ •์ด๋‹ค.(์ถœ์ฒ˜ - https://springbootdev.com)

Http Request -> ์š”์ฒญ

์šฐ์„  Http Request์˜ Method ์ค‘ post ๋ฐฉ์‹์œผ๋กœ ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ๋‚ ๋ฆฐ๋‹ค.
์ด๋•Œ ๋กœ๊ทธ์ธํ•˜๊ณ ์ž ํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์•„์ด๋””(User name)์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ Post ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.

AuthenticationFilter

AuthenticationFilter๊ฐ€ Post ๋ฐฉ์‹์œผ๋กœ ๋‚ ๋ผ์˜จ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ด ํ•„ํ„ฐ๊ฐ€ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ํ† ํฐ์„ ๋งŒ๋“ ๋‹ค.

์ด๋•Œ ํ† ํฐ์„ UsernamePasswordAuthenticationToken์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ํ† ํฐ์„ AuthenticationManager๋กœ ๋ณด๋‚ด์ค€๋‹ค.

AuthenticationManager

UsernamePasswordAuthenticationToken์„ ๊ฐ€์ง€๊ณ  AuthenticationManager๊ฐ€ Authentication ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ† ํฐ์„ UserDetailsService๋กœ ๋ณด๋‚ด์ค€๋‹ค.

UserDetailsService

UserDetailsService๊ฐ€ ํ•ด๋‹น ์•„์ด๋””๊ฐ€ DB์— ์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด ์ค€๋‹ค.

์ด๋•Œ, ํŒจ์Šค์›Œ๋“œ๋Š” ์ธ์ฝ”๋”ฉ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜๋ฏ€๋กœ ์Šคํ”„๋ง์ด ๋”ฐ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— AuthenticationManager๊ฐ€ ํ•ด์ค€๋‹ค.

Authentication ๊ฐ์ฒด

์ด๋ ‡๊ฒŒ ํ† ํฐ์˜ ๋‘ ๊ฐ’์„ ํ™•์ธํ•œ ๋’ค ์ผ์น˜ํ•˜๋ฉด ์„ธ์…˜์— Authentication์œผ๋กœ ์ €์žฅ์„ ํ•ด์ค€๋‹ค.

Authentication ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด๊ฐ„ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์„ธ์…˜ ์† ์‹œํ๋ฆฌํ‹ฐ ์ปจํ…์ŠคํŠธ์— ๊ฐ’์ด ๋“ค์–ด๊ฐ„ ์ƒํƒœ์ด๋ฏ€๋กœ ํ•„์š”ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

devtools ์„ค์ •(intellij)  (0) 2022.03.11
OAuth 2.0 ๋™์ž‘ ๊ณผ์ •  (0) 2022.03.10
@Controller, @RestController return  (0) 2022.03.10
enum ํ™œ์šฉ(RoleType)  (0) 2022.03.10
Inversion of Control (์ œ์–ด์˜ ์—ญ์ „)  (0) 2022.03.09