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

Spring Boot18

[Spring Security] JWT Tutorial (2) Security ์„ค์ •, Data ์„ค์ • - 401 unauthorized ํ•ด๊ฒฐ์„ ์œ„ํ•œ Security ์„ค์ • - Datasuorce, JPA ์„ค์ • - Entity ์ƒ์„ฑ - H2 Console ๊ฒฐ๊ณผ ํ™•์ธ SecurityConfig ํด๋ž˜์Šค ์ƒ์„ฑ config ํŒจํ‚ค์ง€ ๋‚ด์— ์ƒ์„ฑ package com.oliviarla.tutorial.config; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web... 2022. 4. 28.
[Spring Security] JWT Tutorial (1) JWT ๊ฐœ๋…, ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ JWT JSON ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ† ํฐ ์ž์ฒด์— ์ •๋ณด๋“ค์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” Web Token - ๊ตฌ์„ฑ Header: signature๋ฅผ ํ•ด์‹ฑํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ณด ์ €์žฅ Payload: ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃผ๊ณ ๋ฐ›๋Š” ์‹œ์Šคํ…œ์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋  ์ •๋ณด๋“ค์— ๋Œ€ํ•œ ๋‚ด์šฉ ์ €์žฅ Signature: ํ† ํฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ์œ„ํ•œ ๋ฌธ์ž์—ด - ์žฅ์  ์ค‘์•™์˜ ์ธ์ฆ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด์— ๋Œ€ํ•œ ์˜์กด์„ฑ ์—†์Œ, ์‹œ์Šคํ…œ ์ˆ˜ํ‰ ํ™•์žฅ ์œ ๋ฆฌ Base64 URL Safe Encoding์„ ์‚ฌ์šฉํ•ด URL, Cookie, Header์—์„œ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - ๋‹จ์  Payload์˜ ์ •๋ณด๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€ -> ๋ฐ์ดํ„ฐ ์„ค๊ณ„ ๊ณ ๋ ค ํ•„์š” ํ† ํฐ์ด ๊ฐ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ ๊ฐ ํด๋ผ์ด์–ธํŠธ์˜ ํ† ํฐ ์กฐ์ž‘ ๋ถˆ๊ฐ€ dependencies ์„ค์ • intell.. 2022. 4. 28.
[์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ] 10. Spring Boot์™€ Spring Security ์—ฐ๋™ (2) 3. ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ JPA ์ฒ˜๋ฆฌ 4. ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์œ„ํ•œ UserDetailsService 5. Controller์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ 3. ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ JPA ์ฒ˜๋ฆฌ ClubMember: ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ClubMemberRole: ์—”ํ‹ฐํ‹ฐ enum ํด๋ž˜์Šค ClubMemberRepository: repository ์ธํ„ฐํŽ˜์ด์Šค ClubAuthMemberDTO: DTO ํด๋ž˜์Šค(์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์˜ User ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•จ) ClubUserDetailsService: service ํด๋ž˜์Šค, AuthenticationManager๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๋Š” ํด๋ž˜์Šค (UserDetailsService ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์†ํ•จ) User: ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํšŒ์›, ๊ณ„์ •์— ๋Œ€ํ•œ ์šฉ์–ด usernam.. 2022. 4. 22.
[์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ] 10. Spring Boot์™€ Spring Security ์—ฐ๋™ (1) 1. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 2. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• - ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ดํ•ด - JPA์™€ ์—ฐ๋™ํ•˜๋Š” ์ปค์Šคํ…€ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ - Thymeleaf์—์„œ ๋กœ๊ทธ์ธ ์ •๋ณด ํ™œ์šฉํ•˜๊ธฐ 1. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ Dependencies ์ถ”๊ฐ€ Selected Dependencies Spring Boot DevTools Lombok Spring Web Spring Security Thymeleaf Spring Data JPA security - Spring Security ํ•ญ๋ชฉ ํฌํ•จํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ JDK Version: 11 Java Version: 11 build.gradle์— ํ™•์žฅ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€ implementation group: 'org.mariadb.jdbc.. 2022. 4. 19.
[์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ] 7. M:N ๊ด€๊ณ„์˜ ์„ค๊ณ„์™€ ๊ตฌํ˜„ 1. M:N ๊ด€๊ณ„์˜ ํŠน์ง• ์˜ํ™”์™€ ํšŒ์› ๋งคํ•‘ ํ…Œ์ด๋ธ” JPA์—์„œ M:N ์ฒ˜๋ฆฌ 2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ์„ค๊ณ„ 3. M:N Repository์™€ ํ…Œ์ŠคํŠธ Repository ์ž‘์„ฑ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ๋˜๋Š” ์˜ํ™”๋ณ„ ํ‰๊ท  ๋ณ„์  / ๋ฆฌ๋ทฐ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ํŠน์ • ์˜ํ™”์˜ ๋ชจ๋“  ์ด๋ฏธ์ง€์™€ ํ‰๊ท  ๋ณ„์ /๋ฆฌ๋ทฐ ๊ฐœ์ˆ˜ ํŠน์ • ์˜ํ™”์˜ ๋ชจ๋“  ๋ฆฌ๋ทฐ์™€ ํšŒ์›์˜ ๋‹‰๋„ค์ž„ ํšŒ์› ์‚ญ์ œ ๋ฌธ์ œ์™€ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ 1. M:N ๊ด€๊ณ„์˜ ํŠน์ง• ๋…ผ๋ฆฌ์ ์ธ ์„ค๊ณ„์™€ ์‹ค์ œ ํ…Œ์ด๋ธ”์˜ ์„ค๊ณ„๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Œ ์˜ํ™”์™€ ํšŒ์› ํšŒ์›: ์—ฌ๋Ÿฌ ํŽธ์˜ ์˜ํ™”๋ฅผ ํ‰๊ฐ€ ์˜ํ™”: ํ•œ ํŽธ์˜ ์˜ํ™”์— ์—ฌ๋Ÿฌ ํšŒ์›์ด ์กด์žฌ ์˜ํ™”๋ฒˆํ˜ธ ์˜ํ™” ์ด๋ฆ„ ํšŒ์› 1 ํƒ€์งœ a, b 2 ์ธํ„ฐ์Šคํ…”๋ผ b, c, d 3 ์œ„๋Œ€ํ•œ ๊ฐœ์ธ ๋น„ a, c ์œ„์™€ ๊ฐ™์ด ํ•ด๋‹น ์ƒํ’ˆ์ด ์—ฌ๋Ÿฌ ์นดํ…Œ๊ณ ๋ฆฌ์— ์†ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ์ •๋œ ์ˆ˜์˜ ์นผ๋Ÿผ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ์ง€.. 2022. 4. 6.
[์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ] ์ด ์ฑ…์„ ์ฝ๊ธฐ ์‹œ์ž‘ํ•œ ์ด์œ  http://www.yes24.com/Product/Goods/96051853 ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ - YES24 ‘์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ข€ ๋” ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?’์ด ์ฑ…์˜ ์‹œ์ž‘์€ ์œ„์˜ ์งˆ๋ฌธ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ์ข€ ๋” ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” www.yes24.com ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ ๊ฐ•์ขŒ๋‚˜ ์ฑ…์ด ๊ธฐ๋ณธ์ ์ธ CRUD๊นŒ์ง€๋งŒ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ํ•œ๊ณ„๊ฐ€ ๋งŽ์ด ์ฐพ์•„์™”๋‹ค. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๋‚œ๊ด€์€ ๋ฌผ๊ฑด์— ๋Œ€ํ•œ ํ‰์  ํ‰๊ท ๊ณผ ๋ฆฌ๋ทฐ์ˆ˜๋ฅผ ์–ป์–ด๋‚ด ๋ฌผ๊ฑด์„ ์ •๋ ฌํ•˜๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ •๋ง ๋งŽ์ด ๊ตฌ๊ธ€๋ง์„ ํ–ˆ์ง€๋งŒ ๋งŒ์กฑํ•˜๋Š” ๋‹ต์„ ๋ชป์ฐพ๋˜ ์™€์ค‘ ์ด ์ฑ…์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ ๋‚ด๊ฐ€ ๊ฒช์€ ๋‚œ๊ด€์— ๋Œ€.. 2022. 4. 6.