MapleStory Finger Point

๐ŸŸค JAVA/๐ŸŸค Spring Security 3

[Spring Security] Authentication(์ธ์ฆ)

์‹œํ๋ฆฌํ‹ฐ ๊ธฐ๋ณธ ํ‚ค์›Œ๋“œ Filter ๊ธฐ๋ฐ˜ ๋™์ž‘ (ํ•„ํ„ฐ์ฒด์ธ)๋ชจ๋“  ์š”์ฒญ์€ ํ•„ํ„ฐ๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค. ์ ‘๊ทผ ์ฃผ์ฒด(Principal) : ๋ณดํ˜ธ๋œ ๋Œ€์ƒ์— ์ ‘๊ทผํ•˜๋Š” ์ฃผ์ฒด(์œ ์ €) ์ธ์ฆ(Authentication) : ์ฆ๋ช…, ์œ ์ €๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ, ํ†ต์ƒ ํšŒ์›๊ฐ€์ž…ํ•˜๊ณ  ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๊ถŒํ•œ(Role) : ๋กœ๊ทธ์ธ ๋œ ์‚ฌ๋žŒ + role (๊ถŒํ•œ) ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ธ๊ฐ€(Authorization) : ํ—ˆ๋ฝ, ์œ ์ €์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ํ™•์ธ, ํ—ˆ๋ฝํ•˜๋Š” ๊ฒƒ   ๋กœ๊ทธ์ธ ์ธ์ฆ ์ฒ˜๋ฆฌ ๊ณผ์ •  1.  User ๊ฐ€ ๋กœ๊ทธ์ธ ์ •๋ณด + ์ธ์ฆ ์š”์ฒญ์„ ํ•œ๋‹ค (Http Request) 2. ๋ชจ๋“  ์š”์ฒญ์€ `AuthenticationFilter` ๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค. (๋ชจ๋“  ์š”์ฒญ ๊ฐ€๋กœ์ฑ„๊ธฐ)3.  `UsernamePasswordAuthenticationToken`(..

[Spring Security] BCryptPasswordEncoder ํด๋ž˜์Šค

[ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ] BCryptPasswordEncoder ๋Š” ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ(ํ”„๋ ˆ์ž„์›Œํฌ) ์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜์ธ BCrypt ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.BCrypt ์˜ ๊ฒฝ์šฐ์—๋Š”  ์†”ํŠธ(salt) ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ํ•ด์‹ฑํ•œ๋‹ค.  ๋กœ๊ทธ๋ผ์šด๋“œ = ๊ฐ•๋„ (strength)๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์•”ํ˜ธ๋ฅผ ํ•ด์‹œ ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… ์ˆ˜ํ–‰ ์ •๋„์ด๋‹ค. (๊ธฐ๋ณธ๊ฐ’ 10)  BCryptPasswordEncoder ํด๋ž˜์Šค์—๋Š” ์•”ํ˜ธํ™”๋˜์–ด ์ €์žฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•จ  [ BCryptPasswordEncoder ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ ] 1. `String encode(CharSequence rawPassword)`ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™” ๋ฉ”์„œ๋“œ (์›๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ•ด์‹ฑ) 2. `boolean matches(CharS..

[Spring Security] BCrypt ํ•ด์‹œ ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜

Spring Security ์—์„œ๋Š” BCryptPasswordEncoder ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ์ด ํด๋ž˜์Šค๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋•Œ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ BCrypt ํ•ด์‹œ ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐBCrypt ํ•ด์‹œ ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ๋‹ค.  - BCrypt ๋ž€? BCrypt ๋ฐฉ์‹์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ๋กœ ์›๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์—†๋‹ค.  - BCrypy ๋™์ž‘ ๋ฐฉ์‹ ๋‚ด๋ถ€์ ์œผ๋กœ ๋žœ๋คํ•œ ์†”ํŠธ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ์— ํฌํ•จ์‹œํ‚จ๋‹ค. ๋žœ๋ค salt ์ƒ์„ฑ >  ๋น„๋ฐ€๋ฒˆํ˜ธ + salt ๊ฒฐํ•ฉ > ๋น„์šฉํŒฉํ„ฐ์— ๋”ฐ๋ฅธ ๋ฐ˜๋ณต ํ•ด์‹ฑ > ํ•ด์‹ฑ ๊ฒฐ๊ณผ ์ €์žฅ  ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.  - salt(์†”ํŠธ) ๋ž€?ํ•ด์‹œํ•จ์ˆ˜์— ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋žœ๋ค ๋ฐ์ดํ„ฐ 1. ๋ฌด์ž‘์œ„์„ฑ ์ถ”๊ฐ€ : ๋™์ผํ•œ ๋น„..