user-img
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/Spring-Security 4
thumbnail
[ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹]์˜ ์›๋ฆฌ, ์„ธ์…˜ ์ธ์ฆ๊ณผ์˜ ์ฐจ์ด์ 
1. Token ์ธ์ฆ ๋ฐฉ์‹์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด ์ง€๋Š”๊ฐ€ํšŒ์›์ด ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.โ“ Client๊ฐ€ ID/PW ๋กœ๊ทธ์ธ ์ฐฝ์— ์จ์„œ ์ œ์ถœํ•œ๋‹ค. โ“‘ Server๊ฐ€ DB๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ID/PW๋ฅผ ๊ฐ€์ง„ ํšŒ์›์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•ด๋‹น ํšŒ์›์˜ ์ •๋ณด๊ฐ€ ์šฐ๋ฆฌ DB์— ์žˆ์–ด์„œ ์šฐ๋ฆฌ ํšŒ์›์ธ ๊ฒƒ์ด ํ™•์ธ ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. โ“’ Server์—์„œ ํ•ด๋‹น ํšŒ์›์˜ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ ์œ ํ•œ Token์„ ๋งŒ๋“ ๋‹ค. โ““ ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ํ† ํฐ์„ ์•„๊นŒ ์œ ํšจํ•œ ์š”์ฒญ์„ ํ•œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ค€๋‹ค. โ“” ์ด์ œ ํด๋ผ์ด์–ธํŠธ๋Š” ์ธ์ฆ์ด ํ•„์š”ํ•œ API๋ฅผ ์ด์šฉํ•  ๊ฒฝ์šฐ ํ•ด๋‹น Token์„ ์š”์ฒญ Header์— ๋™๋ด‰ํ•˜์—ฌ ๊ฐ™์ด ๋ณด๋‚ธ๋‹ค. โ“• ์ด์ œ ์„œ๋ฒ„์—์„œ๋Š” ํ•ด๋‹น Token์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆ ํ›„ ์œ ํšจํ•œ ํ† ํฐ์ด ๋งž๋‹ค๋ฉด ์‘๋‹ต์œผ๋กœ ์š”์ฒญํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ •์ƒ ๋‹ต๋ณ€์„ ๋ณด๋‚ด์ฃผ๋ฉด ๋œ..
2024.07.07
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/Spring-Security
thumbnail
ํŠนํ™” ํ”„๋กœ์ ํŠธ Spring Security ๋ถ„์„
1. ๊ฐœ์š”4์›” 5์ผ๋ถ€๋กœ ํŠนํ™” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๋ณด์•ˆ์„ ๋งก์•˜๋Š”๋ฐ, ํ•ญ์ƒ ๋‚ด๊ฐ€ ๋งก์€ ํŒŒํŠธ๋ฅผ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ๋ฒŒ์จ 2์ฃผ ๋ฐ˜์ด ํ˜๋ €๊ธฐ์—, ๋” ๊นŒ๋จน๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ์ •๋ฆฌํ•ด๋‘๋ คํ•œ๋‹ค.ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฌธ์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด, ๋‹ค์Œ์„ ํ™•์ธํ•˜์ž.SSAFY 10๊ธฐ ๊ตฌ๋ฏธ 2๋ฐ˜ ํŠนํ™”ํ”„๋กœ์ ํŠธ WALK_WALK2. ์ „๊ฐœ๋„3. ์ฝ”๋“œ ๋ถ„์„(1) JwtAuthFilter ์•ˆ์— ์žˆ๋Š” JwtUtil ๋ถ„์„import io.jsonwebtoken.*;import io.jsonwebtoken.security.Keys;import jakarta.annotation.PostConstruct;import jakarta.servlet.http.HttpServletRequest;import lombok.RequiredArgsCo..
2024.04.26
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/Spring-Security
thumbnail
JWT์— ๋Œ€ํ•˜์—ฌ
1. JWT๋ž€ ๋ฌด์—‡์ธ๊ฐ€?๊ธฐ๋ณธ์ ์ธ ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๊ณ , ๊ฑฐ๊ธฐ์„œ ํ† ํฐ ์ž์ฒด๋ฅผ ๊ฐ•ํ™”ํ•œ ๋ฐฉ์‹์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.์›๋ž˜์˜ ํ† ํฐ ์ธ์ฆ ๊ธฐ๋ฐ˜์—์„œ ์š”์ฒญ์ž๊ฐ€ ๋ณด๋‚ด์˜จ ID/PW ๊ฐ€ DB์— ์กด์žฌํ•˜๋ฉด (์šฐ๋ฆฌ ํšŒ์›์ด ๋งž์œผ๋ฉด) ๊ทธ ์š”์ฒญ์ž์—๊ฒŒ ์ž์‹ ๋“ค์˜ API๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š” ํ—ˆ๊ฐ€์ฆ์ธ ํ† ํฐ์„ ์ „ํ•ด์คฌ์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋”ํ•ด JWT์˜ ๊ฒฝ์šฐ ํ† ํฐ์„ ๋งŒ๋“ค ๋•Œ, ์‚ฌ์šฉ์ž์˜ ์ •๋ณด(๊ฐ„๋‹จํ•œ ๊ฐœ์ธ์ •๋ณด ๋“ฑ +@)๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋งŒ๋“ ๋‹ค.์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ฌด์—‡์ด ์ข‹์„๊นŒ?์•„๊นŒ ํ† ํฐ ์ž์ฒด๊ฐ€ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๊ฐœ์ธ ์ •๋ณด๋ผ๊ณ  ํ•˜์˜€๋‹ค. ํšŒ์›๊ฐ€์ž…์„ ํ•˜์—ฌ ํ† ํฐ์„ ๋ฐ›์•˜๋‹ค๋ฉด, ์ดํ›„ API ์š”์ฒญ์„ ํ•  ๋•Œ, ํ† ํฐ์„ Header๋‚˜ Cookie์— ๋„ฃ์–ด์„œ ๋ณด๋‚ธ๋‹ค. ๋งŒ์•ฝ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ์š”์ฒญ์ด ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด์— ๋Œ€ํ•œ ์š”์ฒญ์ด๋ผ๋ฉด, ์„œ๋ฒ„์—์„œ๋Š” DB๋ฅผ ์กฐํšŒํ•  ํ•„์š”์—†์ด ํ† ํฐ์„ ๋ณตํ˜ธํ™” ํ•˜์—ฌ ๊ทธ ์•ˆ์˜..
2024.04.25
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/Spring-Security
thumbnail
[01]-OAuth2 ์ด๋ก 
๋ชฉ์ฐจ1. OAuth2์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ (OAuth2๋ž€ ์™œ ํ•„์š”ํ•œ๊ฐ€?)2. ๊ทธ๋ž˜์„œ OAuth2๋ž€?3. OAuth2 ๊ด€๋ จ ์šฉ์–ด ์ •๋ฆฌ 4. OAuth2์˜ ๋™์ž‘ ๊ณผ์ • 1. OAuth์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ  (OAuth2๋ž€ ์™œ ํ•„์š”ํ•œ๊ฐ€?)ํ˜„ IT ์„œ๋น„์Šค ์‹œ์žฅ์—๋Š” ๊ตฌ๊ธ€์ด๋‚˜ ์•„๋งˆ์กด, ํŠธ์œ„ํ„ฐ์™€ ๊ฐ™์€ ๋ฉ”๊ฐ€๊ธ‰ ๊ธฐ์—…๋“ค์ด ๋‹ค์ˆ˜ ์กด์žฌํ•œ๋‹ค. ์ด ๊ธฐ์—…์˜ ์‚ฌ์šฉ์ž๋“ค์€ ์ˆ˜์ฒœ๋งŒ ๋งŽ๊ฒŒ๋Š” ์–ต๋Œ€ ๋‹จ์œ„๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๊ทธ ๋งŒํผ ํ•ด๋‹น ๊ธฐ์—…๋“ค์ด ๊ฐ€์ง„ ๋ฆฌ์†Œ์Šค๋„ ๋‹ค์ˆ˜ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ, ๋‹จ์ฒด์ƒํ™œ์„ ํ•ด๋ดค๋‹ค๋ฉด ์•Œ ์ˆ˜์žˆ๋“ฏ์ด ํ•˜๋‚˜์˜ ์ผ์„ ์ž‘์—…์ž ์ „์›์ด ๋งŒ์กฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊น๋‹ค. A๋Š” ์„œ๋ฅ˜ ์ž‘์—…์„ ๋” ์™„๋ฒฝํžˆ ํ•˜๊ณ  ๋‹ค์Œ ์ผ๋กœ ๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๊ณ , B๋Š” ๊ทธ์ € ๋ณธ ์ž‘์—…์„ ๋นจ๋ฆฌ ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ..
2024.03.03
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/Spring-Security