Spring(48)
-
[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 -
[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 -
[์ดํํฐ๋ธ ์๋ฐ] Item01 ์๋ฒฝ๊ณต๋ต. ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ
item01. ์์ฑ์ ๋์ ์ ์ ํฉํฐ๋ฆฌ ๋ฉ์๋๋ฅผ ๊ณ ๋ คํ๋ผ. "p11. ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ๋ฅผ ๋ง๋๋ ๊ทผ๊ฐ์ด ๋๋ค." ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ๋? : ๋ค์ํ ์๋น์ค ์ ๊ณต์๋ค์ด ํ๋์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ์์คํ ์ผ๋ก ํด๋ผ์ด์ธํธ๋ ์ธ๋ถ์ ์ธ ๊ตฌํ ๋ด์ฉ์ ๋ชจ๋ฅด๋๋ผ๋ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ค. ex) mysql, oracle ๋ฑ์ ์๋น์ค ์ ๊ณต์๋ค์ด ๋ชจ์ฌ JDBC๋ผ๋ ํ๋์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํจ. -> ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ ์ฃผ์ ๊ตฌ์ฑ ์์ - ์๋น์ค ์ ๊ณต์ ์ธํฐํ์ด์ค(SPI) ์ ์๋น์ค ์ ๊ณต์ (์๋น์ค ๊ตฌํ์ฒด) - ์๋น์ค ์ ๊ณต์ ๋ฑ๋ก API (์๋น์ค ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ) - ์๋น์ค ์ ๊ทผ API (์๋น์ค์ ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค ์ธํฐํ์ด์ค์ ์ธ์คํด์ค๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ..
2023.01.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 -
Jackson ObjectMapper๋?
1๏ธโฃ ObjectMapper๋? Json ์ปจํ ์ธ ๋ฅผ Java ๊ฐ์ฒด๋ก deserialzation ํ๊ฑฐ๋ Java ๊ฐ์ฒด๋ฅผ Json์ผ๋ก serealizationํ ๋ ์ฌ์ฉํ๋ Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ค์ด๋ค. 2๏ธโฃ ObjectMapper.writeValue() : Java -> Json ObjectMapper์ writeValue()๋ Java ๊ฐ์ฒด๋ฅผ Json ์ถ๋ ฅ์ผ๋ก ์ง๋ ฌํํ ์ ์๋ค. ๊ฐ๋จํ ์ค์ต์ ์ํด ์ง๋ ฌํ ๋๋ ์ญ์ง๋ ฌํ ํ ๊ฐ์ฒด๋ก ๋๊ฐ์ ํ๋๊ฐ ์๋ User ํด๋์ค๋ฅผ ์์ฑํ๋ค. ObjectMapper๋ ์์ฑ ๋น์ฉ์ด ๋น์ธ๊ธฐ ๋๋ฌธ์ bean์ผ๋ก ๋ฑ๋ก ๋๋ static ์ผ๋ก ์ฒ๋ฆฌํ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.. writeValue()๋ฅผ ์ฌ์ฉํ ๋๋ ex) writeValue(new File("user.json"..
2022.06.22 -
[Spring boot #4] ์คํ๋ง API @ResponseBody
์คํ๋ง์์ API๋ผ๊ณ ํ๋ฉด RESTful API๋ผ๊ณ ํ ์ ์๋ค. 1๏ธโฃ @ResponseBody ์ด๋ ๊ฒ @ResponseBody๋ฅผ ์ฌ์ฉํ๋ฉด returnํ ๋ ๋ทฐ ์ด๋ฆ์ ์ง์ ํด viewResolver๊ฐ ํด๋นํ๋ ๋ทฐ๋ก ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ฌํ์ง ์๊ณ , ๋์ ์ HTTP Body์ ๋ฌธ์ ๋ด์ฉ์ ์ง์ ๋ฐํํ๋ค. ๊ฒฐ๊ณผ ์ด๋ฉฐ ํ์ด์ง ์์ค๋ณด๊ธฐ๋ก ์์ค์ฝ๋๋ฅผ ๋ด๋ ๋ฌธ์ ๋ด์ฉ๋ง ๋์ค๊ณ , ๋ค๋ฅธ html ํ๊ทธ๋ ์ด๋ฐ๊ฑด ์๊ณ ๊ฐ์ฒด๊ฐ JSON์ผ๋ก ๋ณํ๋๋ค. ์ด๋์๋ ViewResolver๊ฐ ๋์ํ๋ ๊ฒ์ด ์๋๋ผ HttpMessageConverter๊ฐ ๋์ํด ๊ธฐ๋ณธ ๋ฌธ์์ฒ๋ฆฌ๋ฉด StringHtpMessageConverter๊ฐ ๋์ํ๊ณ , ๊ธฐ๋ณธ ๊ฐ์ฒด์ฒ๋ฆฌ๋ฉด MappingJackson2HttpMessageConverter๊ฐ ๋์ํ๋ค.
2021.12.07 -
[Spring boot #2] ์คํ๋ง ๋ถํธ ์คํํฐ ์ฌ์ดํธ์์ ์คํ๋ง ํ๋ก์ ํธ ์์ฑํ๊ธฐ
1๏ธโฃ ์คํ๋ง ๋ถํธ ์คํํฐ ์ฌ์ดํธ ๊ฒฝ๋ก https://start.spring.io/ 2๏ธโฃ ํ๋ก์ ํธ ์์ฑํ๊ธฐ ์์ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ๋ฉด ์ด๋ฐ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค. Project : ์ฐ์ Maven Project์ Gradle Project๊ฐ ์๋๋ฐ ์์ฆ์ maven ๋ณด๋ค gradle๋ก ํ๋ก์ ํธ๋ฅผ ๋ง์ด ๋ง๋๋ ์ถ์ธ๋ผ๊ณ ํ๋ค. ๊ทธ๋ผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋๊ฒ ์ข์ผ๋๊น gradle project๋ฅผ ์ ํํ๋ค. Spring Boot : 2.6.2 2.6.1 ๋ญ ์ด๋ ๊ฒ ์๋๋ฐ 2021-12 ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ธ 2.6.1์ ์ ํํ๋ค. SNAPSHOT์ ์์ง ๋ง๋ค๊ณ ์๋ ๋ฒ์ ์ด๊ธฐ ๋๋ฌธ์ ์์ ํ 2.6.1์ ์ ํํ์. Project Metadata : Group์๋ ํจ์งํค๋ช ์ ์ ๋๋ฐ ๋ณดํต ํ์ฌ ๋๋ฉ์ธ๋ช ์ ๊ธฐ๋ ํ๋๋ฐ ์ด๊ฑด ์ฌ..
2021.12.07 -
Spring @RestController ๋ฅผ ์ด์ฉํ ๊ฐ๋จํ ๊ฒ์ํ, ํ์ด์ง
1. REST(REpresentational State Transfer) : ํน์ URI๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์ํ๋ ์ ๋ณด๋ฅผ ์ ๊ณต๋ฐ๋ ํ์์ด๋ค. ์ด๋ ๊ฒ REST ๋ฐฉ์์ผ๋ก ์๋น์ค์ ๊ณต์ด ๊ฐ๋ฅํ ๊ฒ์ RESTful ํ๋ค๋ผ๊ณ ํ๋ค. 2. @RestController https://hyejin.tistory.com/275 Spring RESTful ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ฒ์ํ https://hyejin.tistory.com/272 Spring RESTful ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ (@RequestBody, @ResponseBody, GET, POST, PUT, DELETE, Postman ์ค์น ๋ฐ ํ ์คํธ https://hyejin.tistory.com/265 Spring MVC, Mybatis [2].. hyejin.tistor..
2021.12.06 -
Spring Security JDBC ์ฌ์ฉํ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ (BCryptPasswordEncoder ์ํธํ)
์ด๋ฒ์๋ Spring Security ์์ JDBC๋ฅผ ์ฌ์ฉํด์ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ๋ฅผ ํด๋ณผ ์์ ์ด๋ค. https://hyejin.tistory.com/281 Spring Security ๋ก๊ทธ์ธ ์ธ์ฆ ๋ฐ ์ธ๊ฐ (Security ํ๊ฒฝ์ค์ , AuthenticationManger, AutenticationProvider) 1. Spring Security ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น Spring ๋ฒ์ : 5.2.13 java : 1.8 1๏ธโฃ Spring Security Web https://mvnrepository.com/artifact/org.springframework.security/spring-security-web 2๏ธโฃ Spring Securi.. hyejin.tistory.com ์ฌ๊ธฐ์ ํ๋ ๋ฐฉ์์ InMemory ๋ฐฉ..
2021.12.03 -
Spring Security ๋ก๊ทธ์ธ ์ธ์ฆ ๋ฐ ์ธ๊ฐ (Security ํ๊ฒฝ์ค์ , AuthenticationManger, AutenticationProvider)
1. Spring Security ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น Spring ๋ฒ์ : 5.2.13 java : 1.8 1๏ธโฃ Spring Security Web https://mvnrepository.com/artifact/org.springframework.security/spring-security-web 2๏ธโฃ Spring Security Core https://mvnrepository.com/artifact/org.springframework.security/spring-security-core 3๏ธโฃ Spring Security Config https://mvnrepository.com/artifact/org.springframework.security/spring-security-config 4๏ธโฃ Spri..
2021.12.02 -
Spring interceptor๋ฅผ ํ์ฉํ ๋ก๊ทธ์ธ ๋ฐ ์ธ๊ฐ(Authorization)
1. ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization) 1๏ธโฃ ์ธ์ฆ(Authentication) : ์์คํ ์ ๊ทผ ์, ๋ฑ๋ก๋ ์ฌ์ฉ์์ธ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๊ฒ ex) ๋ก๊ทธ์ธ 2๏ธโฃ ์ธ๊ฐ(Authorization) : ์์คํ ์ ๊ทผ ํ, ์ธ์ฆ๋ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ ๊ถํ์ ๋ฐ๋ผ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ด ์ ํ๋จ ex) ์ฌ์ฉ์ ๋ฑ๊ธ (์ผ๋ฐ/ vip/ ๊ด๋ฆฌ์) 2. Spring MVC ๊ฒ์ํ์ ์ธ์ฆ, ๊ถํ ์ถ๊ฐ https://hyejin.tistory.com/276 Spring MVC ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ (+ ํผ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฆํ๊ธฐ Validator) https://hyejin.tistory.com/270?category=1022293 Spring MVC ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ ๊ฐ๋จํ ์ฌ์ฉ์..
2021.12.02