Spring(64)
-
[Spring Boot] Spring Security, JWT ํ ํฐ ์ธ์ฆ
์กฐ๊ธ์ ์๊ฐ์ด ๋จ์ ํญ์ ๋ฏธ๋ค์๋์คํ๋ง ๋ถํธ์์ JWT ํ ํฐ์ ์ฌ์ฉํด ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ , Spring Security๋ก ์ธ์ฆ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ํ ์คํธ ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ณ , ํฐ์คํ ๋ฆฌ์ ์ ๋ฆฌํด๋ณธ๋ค.!! ์ด๋ฒ์ REST API ํ๋ก์ ํธ์ ์ธ์ฆ๋ฐฉ์์ผ๋ก JWT ํ ํฐ์ ์ฌ์ฉํ๊ณ , ์ด ๋ถ๋ถ์ ๋ด๊ฐ ์ ๋๋ก ์๊ณ ์๊ฒ ๋ ์ํฉ์ด ๋์ด์,,, ๋ฏธ๋ฆฌ ๋ฏธ๋ฆฌ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌ ํด๋๋ค ใ ใ ๐๐ 0๏ธโฃ Spring Security, JWT ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ build.gardle implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'io.jsonwebtoken:jjwt-impl:0.11.5' implementati..
2024.11.04 -
Apache Poi๋ก ์์ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
์ต๊ทผ์ ๊ฐ๋จํ ์ถ๊ฐ ๊ฐ๋ฐ๋ก ์์ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ ์์ฒญ์ด ๋ค์ด์๋ค. ์์ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ์ด์ผ ์ฝ์ง~ ํ๊ณ ์ ์ผ ๋ง์ง๋ง์ผ๋ก ๋ฏธ๋ค๋๋ค๊ฐ ๋์ ๊ฐ๋ฐ ๋ฌด์ง (?) ๋ก ์ธํด์ 1 ~ 2์๊ฐ์ด๋ฉด ์์ฑํ ๊ฒ์ ์ค๊ฐ์ ๋ค๋ฅธ ์ผ๋ ํ๋ฉด์ ์ค๋ฅ ํ์ ํ๋๋ผ.. 3์ผ๋์ ๋์๋ ๊ฒ ๊ฐ๋ค. ์ผ๋จ ์ด๊ฑธ ๋ชฐ๋ผ์ 3์ผ ๋์ ๋์๋ ๋ด๊ฐ ๋๋ฌด ํ์ฌ (?) ํด์.. ๋ค์์ ๋๊ฐ์ ์ค์ ํ๊ณ ์ถ์ง ์์์ ๊ธฐ๋กํ๋ค. ( Okky ์์ 7๋ ์ ์ ์ง๋ฌธํ์ ๋ถ ๋๋ถ์ ์ ๊ฐ ์ด์์ต๋๋ค.. ๊ฐ์ฌ๋ฅผ.. ๐ญ ) ์ด์ tmi ์๊ณ , ๋ฐ์์๋ถํฐ๋ ์ด์ ์๋ฐ๋ก Apache Poi๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ์์ ํ์ผ์ ๋ง๋ค์ด ๋ค์ด๋ก๋ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. 0๏ธโฃ Apache poi ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด https://mvnrepository.com/artifact/org.ap..
2024.04.15 -
๊ฐ๋จํ Spring Boot Restful API Sample Project ๋ง๋ค์ด๋ณด๊ธฐ #2. ํ์๊ฐ์ ๊ตฌํํ๊ธฐ
https://hyejin.tistory.com/1295 ๊ฐ๋จํ Spring Boot Restful API Sample Project ๋ง๋ค์ด๋ณด๊ธฐ #1. Spring Security ์ค์ + CustomFilter ๋ง๋ค๊ธฐ โ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ ์ด์ -> ์๊ฐ์ด ์กฐ๊ธ ์ฌ์ ๋ก์ด ์์ฆ, ๊ณง ๊ฐ๋ฐ ๋ค์ด๊ฐ๊ธฐ ์ ์ ๊ฐ๋จํ๊ฒ ์ํ ํ๋ก์ ํธ ๋ง๋ค๋ฉด์ ๊ฐ ์ก๊ณ ? ์๊ณ ์ถ์ด์! ๊ทธ๋ฆฌ๊ณ ๋ง๋ ๊น์ ์ค๋๋ง์ ํฐ์คํ ๋ฆฌ hyejin.tistory.com -> ์ด๋ฒ ๊ธ์ ํ์ ๊ฐ์ ๋ก์ง์ ๊ตฌํํ๋ ๊ธ๋ก, ์ํ๋ฆฌํฐ ์ค์ ๊ด๋ จ ๋ถ๋ถ์ ๋ฐ์ ๋งํฌ ํด๋ฆญํด์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค :) ๐ : ์๊ฐํด๋ณด๋ฉด ์คํ๋ง ์ํ๋ฆฌํฐ ์ค์ ๋ฐ ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ ์ ์ ํ์๊ฐ์ ๋ก์ง์ ๋ง๋ค์์ด์ผ ํ๋ค.. ์๋ ํ์ ๊ฐ์ ์ ํด์ผ ํ์ ์ ๋ณด ์ ์ฅํ๊ณ , ๋ก๊ทธ..
2024.03.11 -
๊ฐ๋จํ Spring Boot Restful API Sample Project ๋ง๋ค์ด๋ณด๊ธฐ #1. Spring Security ์ค์ + CustomFilter ๋ง๋ค๊ธฐ
โ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ ์ด์ -> ์๊ฐ์ด ์กฐ๊ธ ์ฌ์ ๋ก์ด ์์ฆ, ๊ณง ๊ฐ๋ฐ ๋ค์ด๊ฐ๊ธฐ ์ ์ ๊ฐ๋จํ๊ฒ ์ํ ํ๋ก์ ํธ ๋ง๋ค๋ฉด์ ๊ฐ ์ก๊ณ ? ์๊ณ ์ถ์ด์! ๊ทธ๋ฆฌ๊ณ ๋ง๋ ๊น์ ์ค๋๋ง์ ํฐ์คํ ๋ฆฌ์ ๊ธ๋ ๋ง์ด ์ฌ๋ฆฌ๋ฉด์ ์งํํ ์์ ์ด๋ค. โ ๊ฐ๋ฐ ํ๊ฒฝ - Jdk 17 - SpringBoot 3.2.3 - Spring Security - JPA + H2 (์ํ ํ๋ก์ ํธ๋ผ ๊ทธ๋ฅ ๊ฐ๋จํ ๊ตฌํํ ์ ์๋ h2 ์ฌ์ฉํ ์์ ์ด๋ค.) - Spring REST Docs + mockMvc (REST Docs ๋ฅผ ์ด์ฉํด์ api ๋ฌธ์ ์๋ํํ ์์ ์ด๋ค.) โ ์ง๊ธ ์๊ฐํ๋ ๊ธฐ๋ฅ - ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ - ๊ฒ์๊ธ ์์ฑ, ์กฐํ, ์์ , ์ญ์ - ๋๊ธ ์์ฑ, ์กฐํ, ์์ , ์ญ์ ( + ์ฌ์ฉ์ ๊ด๋ฆฌ? ) ์ด๋ ๊ฒ ์๊ฐํ๊ณ ์๋ค. ์ฐ์ ๊ธฐ..
2024.03.07 -
Spring REST Docs ๋ฅผ ์ฌ์ฉํด ๋ฌธ์ ์๋ํํ๋ ๋ฐฉ๋ฒ + ์ํ ํ๋ก์ ํธ ์์ฑ (Spring +JPA)
* ํน์๋ ๋ฐ๋ก ์ฝ๋๋ถํฐ ๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์ -> " Spring REST Docs ๋ฅผ ์ด์ฉํ Sample Project " ๊ฒ์ ๋ ์ญ๊ณ 0๏ธโฃ Spring REST Docs ๋ ? : Spring MVC Test ๋๋ WebTestClient์ผ๋ก ์์ฑ๋ ์ค๋ํซ๊ณผ ์ง์ ์์ฑํ ๋ฌธ์๋ฅผ ๊ฒฐํฉํ์ฌ Restful ์๋น์ค๋ฅผ ๋ฌธ์ํํ๋ ๊ฒ์ด๋ค. https://docs.spring.io/spring-restdocs/docs/current/reference/htmlsingle/#introduction Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced wi..
2024.02.27 -
[Spring] ๋ค์ด๋ฒ ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
https://hyejin.tistory.com/1290 [Spring] ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์์ฆ์ ์นด์นด์ค, ๋ค์ด๋ฒ๋ฅผ ์ด์ฉํ Login Api ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ค์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด kakao login api ๋์ ๋ฐฉ์์ ์์๋ณผ ๊ฒ์ด๋ค. REST API๋ฅผ ์ฌ์ฉํ ์นด์นด์ค ๋ก๊ทธ์ธ์ PC ๋ฐ hyejin.tistory.com -> ์นด์นด์ค ๋ก๊ทธ์ธ api ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์นด์นด์ค ๋ก๊ทธ์ธ api๋ฅผ ์ฌ์ฉํด์ ๋ก๊ทธ์ธ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ ๋ค์, ์ด์ ๋ค์ด๋ฒ ๋ก๊ทธ์ธ api๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณผ ๊ฒ์ด๋ค. ํ๋ฒ ํด๋ณด๋ฉด ๋๋ค ํ๋ก์ฐ๋ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ๊ธ๋ฐฉํ ์ ์๋ค. Naver ๋ก๊ทธ์ธ ๋์ ๋ฐฉ๋ฒ https://developers.naver.com/main/ NAVER Develo..
2024.02.07 -
[Spring] ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
์์ฆ์ ์นด์นด์ค, ๋ค์ด๋ฒ๋ฅผ ์ด์ฉํ Login Api ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ค์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด kakao login api ๋์ ๋ฐฉ์์ ์์๋ณผ ๊ฒ์ด๋ค. REST API๋ฅผ ์ฌ์ฉํ ์นด์นด์ค ๋ก๊ทธ์ธ์ PC ๋ฐ ๋ชจ๋ฐ์ผ ์น์์ ์ ํฉํ ๋ฐฉ์์ด๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ์ OAuth 2.0 ๊ธฐ๋ฐ์ ์์ ๋ก๊ทธ์ธ ์๋น์ค๋ก ์นด์นด์ค ๋ก๊ทธ์ธ์ ์ด์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์นด์นด์คํก ๋๋ ์นด์นด์ค ๊ณ์ ์ผ๋ก ์์ฝ๊ฒ ์๋น์ค์ ๋ก๊ทธ์ธ ํ ์ ์๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ ์๋น์ค ๊ณผ์ 1๏ธโฃ ์นด์นด์ค ๋ก๊ทธ์ธ ์ฌ์ฉ์๊ฐ ์๋น์ค์์ ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ์๋น์ค๋ ์นด์นด์ค ์ธ์ฆ ์๋ฒ๋ก ์ธ๊ฐ ์ฝ๋ ๋ฐ๊ธ์ ์์ฒญํฉ๋๋ค. ์นด์นด์ค ์ธ์ฆ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ ์ธ์ฆ์ ์์ฒญํฉ๋๋ค. (์ฐธ๊ณ : ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ฐ๋ฅธ ์ธ์ฆ ๋ฐฉ๋ฒ) ์นด์นด์คํก์ผ๋ก ๋ก๊ทธ์ธ: ์นด์นด์คํก ์คํ,..
2024.02.07 -
์คํ๋ง ์ปจํธ๋กค๋ฌ ํ๋ผ๋ฏธํฐ์ ํ๊ธ ๊นจ์ง ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
๊ฐ๋ฐํ๋๋ฐ ์คํ๋ง ์ปจํธ๋กค๋ฌ์ ํ๊ธ๊นจ์ง์ด ๋ฐ์ํด์ ์ ๋๋ก ๊ฐ์ด ์๋ค์ด์ค๋ ์ํฉ์ด ๋ฐ์ํ์๋ค. ์ํฉ์ url์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ๋๋ฐ ์ด๋ ํ๊ธ์ด ๋ค์ด๊ฐ url์ ๋ํด์ ํ๊ธ๊นจ์ง ํ์์ด ๋ฐ์ํ์๋ค. ์ธํ ๋ฆฌ์ ์ด ํ๊ธ ์ค์ ์ด ์๋ชป๋๋ ํ๊ณ ๊ตฌ๊ธ๋งํ๋ฉด ๋์ค๋ ๊ฐ์ข ์ค์ ์ ๋ค ํด๋ดค์ง๋ง ์๋์๋ค..ใ ใ ์ด ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์์ ์๋ฒ์์ ๋ฌธ์ ์ธ๊ฐ ํ๊ณ tomcat์ server.xml ๋ณด๋๊น ์๋ฒ์ ์ธ์ฝ๋ฉ ์ค์ ์ ์ํด์ค์ ๋ฐ์ํ๋ ๊ฒ์ด๋ค...๐ tomcat ์ค์นํ ๊ณณ์ conf > server.xml ์๋๋ URIEncoding="UTF-8" ์ด ์์ ๊ฒ์ธ๋ฐ ์ด๊ฑธ ์ถ๊ฐํด์ฃผ๋ฉด ์๋ฒ ์ธ์ฝ๋ฉ ์ฒ๋ฆฌ๊ฐ ๋๋ค.
2023.05.09 -
Tomcat ํน์ ๋ฒ์ ์ค์นํ๋ ๋ฐฉ๋ฒ (9.0.68)
ํฐ์บฃ ์์ ๋ฒ์ ์ ๋ค์ด๋ฐ์์ผ ํ๋๋ฐ ๋ฎ์ ๋ฒ์ ์ ์ด๋์ ๋ฐ๋์ง ์ฐพ์๋ณธ๊ฑธ ๋์ค์ ๋๋ฅผ ์ํด ๊ณต์ ^0^ https://archive.apache.org/dist/tomcat/ Index of /dist/tomcat archive.apache.org ์์ ๋งํฌ๋ฅผ ํ๊ณ ๋ค์ด๊ฐ์ ํฐ์บฃ ์์นด์ด๋ธ ์ฌ์ดํธ๋ก ์ ์ํด์ ๋ค์ด๋ฐ๊ณ ์ถ์ ๋ฒ์ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ํด๋ฆญํ๋ค. ์ ๋ 9.0.68 ๋ฒ์ ์ ๋ค์ด๋ฐ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ tomcat-9/ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ค์ด๊ฐ์ v9.0.68 ์ธ๋ถ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ค์ด๊ฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํฐ์บฃ์ ๋ค์ด๋ฐ์ผ๋ ค๋ฉด bin ํด๋๋ฅผ ๋ค์ด๊ฐ์ windows ํ๊ฒฝ์์ ํฐ์บฃ์ ์ค์นํ๋ ค๋ฉด zip ํ์ผ์ ๋ค์ด๋ฐ์ผ๋ฉด ๋๊ณ , Linux ํ๊ฒฝ์ด๋ผ๋ฉด tar.gz ํ์ผ์ ๋ค์ด๋ฐ์ผ๋ฉด ๋๋ค. LE๋ ๋ญ๊ฐ ํ๋๋ฐ ์๋จ์ ํ์ผ๋ช ์ LE๊ฐ ๋ถ์ ํ์ผ..
2022.12.05 -
[JAVA] ์ด๋ฅผ ์ผ/์/๋ถ/์ด๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
http://www.na2.co.kr/time ์ผ์์ ๋์์ด ๋๋ ๊ณ์ฐ๊ธฐ ์ผ์์ ๋์์ด ๋๋ ์ฌ๋ฌ ๊ณ์ฐ๊ธฐ๋ค์ ํ๋ฒ์ ๋ชจ์์ต๋๋ค.(๋ง๋์ด, ์๋ ฅ์์ผ, ๋ , ์ด๋ฅด์ ๊ธฐ๋ ์ผ, ๊ณ ์์ด๋์ด, ๊ฐ์์ง๋์ด ๋ฑ) www.na2.co.kr ์ด๋ก ์ฃผ์ด์ง ๊ฐ์ ์ผ/์/๋ถ/์ด๋ก ๋ณํํด์ ํ๊ธฐํด์ค์ผํ๋ ์ผ์ด ์์ด์ ๋ฐฉ๋ฒ์ ์ฐพ์๋ดค๊ณ .. ๋์ค์๋ ์ฌ์ฉํ ์ผ์ด ์์๊ฑฐ ๊ฐ์์ ์ ๋ฆฌํด๋๋ค ^0^ ์์ ์ฌ์ดํธ์์๋ ์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์ผ/์/๋ถ/์ด๋ก ๊ณ์ฐํด์ฃผ๋ ์ฌ์ดํธ์ด๋ค. ์ด ์ฌ์ดํธ๋ฅผ ์์๋ณธ ์ด์ ๋ ๊ณ์ฐํ ๊ฐ์ด ์ ๋๋ก ๋์จ๊ฐ์ด ๋ง๋์ง ํ์ธํ๊ธฐ ์ํด์.. ์ด๋ฐ์์ผ๋ก ํ์ธํ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ํ๋ ๊ฐ์ ์ป์ ์ ์๋ค.
2022.11.28 -
Spring Session Util
Spring์์ ์ ๊ณตํ๋ RequestContextHolder๋ฅผ ์ด์ฉํ๋ฉด HttpServletRequest ์ ์ง์ ์ ๊ทผํ ์ ์๋๋ก ๋์์ฃผ๋ ์ญํ ์ ํ๋ค. ์ด๋ spring 2.x ๋ถํฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ผ๋ก ์ด๋ฅผ ํ์ฉํ๋ฉด HttpServletRequest ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ด๋ฅผ ๋ฉ์๋ ํ๋ผ๋ฏธํฐ๋ก ์ฐ์ด์ด ๋๊ฒจ๋ฐ์ ํ์๊ฐ ์๋ค. ์๋ service๋จ์์ HttpServletRequest ๋ฅผ ์ฐธ์กฐํด์ผํ๋ค๋ฉด ๋ฉ์๋ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ๋ฐ์์ด์ผ ํ๋๋ฐ RequestContextHolder๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํ๋ผ๋ฏธํฐ๋ก ๋๊ธธ ํ์ ์์ด ํ์ํ ๊ณณ์์ ์ฐธ์กฐํ ์ ์๋ค. RequestContextHolder๋ฅผ ์ด์ฉํ์ฌ request ๊ฐ์ฒด๋ฅผ service ๊น์ง ์ ๋ฌํ์ง ์๊ณ ์ฌ์ฉํ ์ ์๊ณ Util ํด๋์ค์๋ ์ธ์ ๊ฐ์ ์ ๊ทผํ ์ ์๋ค..
2022.08.04 -
Spring์์ ์ฌ์ฉํ๋ RestTemplate , OkHttp, REST API ์์ ์ฌ์ดํธ
1๏ธโฃ RestTemplate๋? ์คํ๋ง์์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก http ํต์ ์ ์ ์ฉํ๊ฒ ์ธ ์ ์๋ ํ ํ๋ฆฟ์ด๋ค. REST API๋ฅผ ํธ์ถํ ์ ์๋ Spring ๋ด์ฅ ํด๋์ค๋ก REST API ํธ์ถ์ดํ ์๋ต๋ฐ์ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋๊ธฐ๋ฐฉ์์ด๋ค. OkHttp๋? REST API, HTTP ํต์ ์ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. Okhttp ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด REST api, Http ๊ธฐ๋ฐ์ ์์ฒญ, ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋ค. //okhttp implementation 'com.squareup.okhttp3:okhttp:4.9.3' -> build.gradle์ ์ถ๊ฐํด์ฃผ๊ณ refresh ํด์ค๋ค. -> Spring boot๋ RestTemplate + Okhttp ์ฐ๊ฒฐํ์ ์ฌ์ฉํด์ ๋ฉ์์ง๋ฅผ ..
2022.06.28