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

๊ฐœ์ธ ๊ณต๋ถ€/WEB-Spring,SpringBoot7

์Šคํ”„๋ง๋ถ€ํŠธ h2 database, h2 console ์„ค์ • โœ… ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ h2 database๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•pom.xml์— h2 ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ , application.properties์— ๊ด€๋ จ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.   ๐Ÿ“Œ h2 database ์‹คํ–‰์„ ์œ„ํ•œ ์ตœ์†Œ ์„ค์ •pom.xml com.h2database h2 runtime application.properties# h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋“œ (mem) ๋กœ ์‹คํ–‰ํ•˜๋Š” ์„ค์ •. ์ด๋•Œ db์ด๋ฆ„์€ testdb๋กœ ์ƒ์„ฑ๋œ๋‹ค.spring.datasource.url=jdbc:h2:mem:testdb# ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ • (๋””ํดํŠธ username: sa, ๋””ํดํŠธ password: ์—†์Œ) spring.datasource.username=saspring.datasource.pass.. 2025. 3. 6.
[JPA] ddl-auto ์˜ต์…˜ Spring JPA๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์„ค์ •ํŒŒ์ผ(application.yml ๋˜๋Š” application.properties)์˜ ์„ค์ • ์ค‘ ํ•˜๋‚˜์ด๋‹ค.ddl-auto ์˜ต์…˜์—๋Š” create, update, validate, create-drop, none์ด ์žˆ๋‹ค. ๐Ÿ“Œ none- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๊ด€๋ จํ•˜์—ฌ ์•„๋ฌด ์ž‘์—…๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๐Ÿ“Œ validate- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋  ๋•Œ, ์—”ํ‹ฐํ‹ฐ ๋งตํ•‘์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ๊ฒ€์ฆ๋งŒ ํ•œ๋‹ค.- ๋ถˆ์ผ์น˜ํ•  ๊ฒฝ์šฐ, javax.persistence.PersistenceException์ด ๋ฐœ์ƒํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘์ด ์‹คํŒจํ•œ๋‹ค. ๐Ÿ“Œ update-์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋  ๋•Œ, ์—”ํ‹ฐํ‹ฐ ๋งตํ•‘๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ๋น„๊ตํ•œ๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.-์ฆ‰, ์ƒˆ๋กœ์šด.. 2024. 11. 19.
์Œฉ๊ตฌํ˜„ํ–ˆ๋˜ ๊ตฌ๊ธ€ OAuth ์ธ์ฆ ํ”„๋กœ์ ํŠธ์— Spring Security ์ ์šฉํ•˜๊ธฐ ์–ด์ œ ํ•˜๋ฃจ๋™์•ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์›€ ์—†์ด, ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š” ๊ณผ์ •์„ ์Œฉ์œผ๋กœ ๊ตฌํ˜„ํ•ด์„œ๊ตฌ๊ธ€ OAuth ๊ฐ„ํŽธ ํšŒ์›๊ฐ€์ž…์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜์—ˆ๋‹ค.๐Ÿ“„ Spring Security, OAuth2 Client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ง€ ์•Š๊ณ  ๊ตฌ๊ธ€ OAuth ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ํ•˜๊ธฐ ์ด๋ฒˆ์—๋Š” Spring Security์™€ OAuth2 Client ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊ฟ”๋ณด์•˜๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ƒ๊ฐ๋ณด๋‹ค ๊ณ ์ƒํ–ˆ๋‹ค.์ด์œ ๋Š” Spring Security ๋ฒ„์ „์ด ๋ฌด๋ ค 6.2.7์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ 6 ๋ฒ„์ „ ์ด์ƒ์€ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ฐ•์˜๋‚˜ ๊ต์žฌ๊ฐ€ ๊ฑฐ์˜ ์—†์—ˆ๊ณ ,๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋’ค์ ธ๋ด๋„ ์ž˜ ๋ชป์ฐพ๊ฒ ์–ด์„œ ๊ณ ์ƒํ•ด๊ฐ€๋ฉด์„œ ๊ฒจ์šฐ๊ฒจ์šฐ ์„ค์ •ํ–ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€, ์Šคํ”„๋ง ํ•„ํ„ฐ ์ฒด์ธ์— ์‹œํ๋ฆฌํ‹ฐ ํ•„ํ„ฐ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ 5.7.x .. 2024. 11. 18.
[TIL] Spring Security, OAuth2 Client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ง€ ์•Š๊ณ  ๊ตฌ๊ธ€ OAuth ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ํ•˜๊ธฐ โœ… ๊ฐœ๋ฐœํ™˜๊ฒฝSpringBoot 3.2.11, GradleJDK 17 ์ตœ๊ทผ ๋ฉฐ์น ๊ฐ„ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ Spring Security์™€ OAuth2 Client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ๊ตฌ๊ธ€, ํŽ˜์ด์Šค๋ถ, ๋„ค์ด๋ฒ„ OAuth ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด์•˜๋‹ค.๋งˆ์นจ ์š”์ฆ˜ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด์ œ ๋ง‰ ๊ตฌํ˜„ ๋‹จ๊ณ„์— ์ง„์ž…ํ•ด์„œ, ์—ฌ๊ธฐ์— ๊ตฌ๊ธ€ OAuth ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž…๋งŒ ์ ์šฉํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ๋‚ด๊ฐ€ ํ•œ ๋ฒˆ ์ ์šฉํ•ด๋ณด๊ฒ ๋‹ค๊ณ  ํ–ˆ๋‹ค. โœ… ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐ•์˜ ์† ํ”„๋กœ์ ํŠธ์™€๋Š” ๊ตฌ์กฐ์ ์ธ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋‹ค.๊ฐ•์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ ๋”ฐ๋กœ ์žˆ์ง€ ์•Š๊ณ ,ํ”„๋ก ํŠธ ์„œ๋ฒ„ ํ•˜๋‚˜๋ฅผ ๋‘๊ณ  Spring Security๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋ก ํŠธ ์„œ๋ฒ„์™€ ๋ฐฑ .. 2024. 11. 17.
์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ & OAuth๋กœ ๊ตฌ๊ธ€ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ์‹œํ‚ค๊ธฐ ๊นƒํ—ˆ๋ธŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(oauth1110)์— ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ž์„ธํžˆ ์ •๋ฆฌํ•ด๋‘๊ธด ํ–ˆ์ง€๋งŒ,๋ธ”๋กœ๊ทธ์—๋„ ์ „์ฒด์ ์ธ ํ๋ฆ„๋งŒ ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Œ ๊ตฌ๊ธ€ API ์ฝ˜์†”์—์„œ OAuth ํด๋ผ์ด์–ธํŠธ ID ๋งŒ๋“ค๊ธฐ- ๊ตฌ๊ธ€ API ์ฝ˜์†”์— ์ ‘์†ํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.- ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด -> ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ -> OAuth ํด๋ผ์ด์–ธํŠธ ID๋ฅผ ๋งŒ๋“ ๋‹ค. - OAuth ํด๋ผ์ด์–ธํŠธ ์•„์ด๋””๋ฅผ ๋งŒ๋“ค ๋•Œ "์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI"๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์นธ์ด ๋œจ๋Š”๋ฐ,  ๊ทธ ์นธ์— "http://{์„œ๋น„์Šคip}:{port}/login/oauth2/code/google" ์„ ์ž…๋ ฅํ•ด์ค€๋‹ค.- ์ด URI๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ ๊ตฌ๊ธ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋Š” URI๋ผ๊ณ  ํ•œ๋‹ค. - OAuth ํด๋ผ์ด์–ธํŠธ ID ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธID์™€.. 2024. 11. 12.
[TIL] SpringSecurity ๊ธฐ๋ณธ ์„ค์ • ๊ณต๋ถ€ํ•˜๋ฉฐ ์•Œ๊ฒŒ ๋œ ์  2024.11.10 ๊ฐœ์ธ์ ์ธ ์ •๋ฆฌ์šฉ ๊ธ€ ์Šคํ”„๋ง๋ถ€ํŠธ 2.7.18 ๋ฒ„์ „ / Maven๊ตฌ์ฒด์ ์ธ ๊ณต๋ถ€ ๋‚ด์šฉ์€ ๊นƒํ—ˆ๋ธŒ ๊ฐœ์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(oauth1110)์— ์ •๋ฆฌํ•ด๋‘์—ˆ๋‹ค.   ์˜ค๋Š˜ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ์ ์€ 1. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์„ค์ •ํŒŒ์ผ์— @EnableWebSecurity ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ์ฃผ๋ฉด์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ํ•„ํ„ฐ๋ฅผ ์Šคํ”„๋ง ํ•„ํ„ฐ ์ฒด์ธ์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.  2. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋Š” ํŒจ์Šค์›Œ๋“œ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋•Œ ์ธ์ฝ”๋”ฉ ๋œ ํŒจ์Šค์›Œ๋“œ ๊ธฐ์ค€์œผ๋กœ ์ฒดํฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ €์žฅํ•  ๊ฒฝ์šฐ ์ธ์ฆ์‹คํŒจํ•œ๋‹ค.  3. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•˜๋ฉด, ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋Š” ์„ธ์…˜ ์˜์—ญ ์ค‘ ์‹œํ๋ฆฌํ‹ฐ ์„ธ์…˜ ์˜์—ญ์— Authentication ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.(์„ธ์…˜ ์˜.. 2024. 11. 10.
728x90