๐ ํ๋ฃจ ์ผ๊ณผ
10:00 ~ 10:30 ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
10:30 ~ 12:30 Issue Tracker ํ๋ก์ ํธ
14:30 ~ 15:40 Dion ํน๊ฐ
16:00 ~ 18:10 Issue Tracker ํ๋ก์ ํธ
๐ค Issue Tracker 8์ผ์ฐจ
์ค๋๋ ์ฐํ ๋ฆฌ์ ์์
์ ์ด์ด๋๊ฐ๋ค.
์ค๋์ ์ค์ ์๋ ๋ค๋น๊ฒ์ดํฐ, ์คํ์๋ ๋๋ผ์ด๋ฒ๋ก ์์
์ ์งํํ๋ค. ์ค๊ฐ์๋ ๋์จ์ ํน๊ฐ์ด ์์๊ณ , ์๊ฐ์ ์ ๋ฆฌํ ์ ์๋ ์ ์ตํ ์๊ฐ์ด์๋ค.
๐ ์์
- ์ ์ ํ์๊ฐ์
์ ๋น๋ฐ๋ฒํธ ์ํธํ
- jbcrypt ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
- access ํ ํฐ ๊ฐฑ์ ํ๋ ๋ก์ง ์์ฑ
๐ญ ๊ณ ๋ฏผ์ฌํญ
์์์ฑ ์ปจํ ์คํธ์ ๋จ์๋?
ํ์ฌ ์๋น์ค์์๋ jwt ํ ํฐ์ ์ฌ์ฉํด์ ์ฌ์ฉ์ ์ธ์ฆ์ ๊ตฌํํ๋ค.
jwtํ ํฐ์ ์ ์ ์๋ณ id๋ฅผ claim ๊ฐ์ผ๋ก ๋ฃ๊ณ ์์ผ๋ฉฐ ํ ํฐ ๊ฒ์ฆ ํ userId๋ฅผ ์ฌ์ฉํด์ user ๊ฐ์ฒด๋ฅผ ์กฐํํด์ ์ธํฐ์
ํฐ์์ ์ปจํธ๋กค๋ฌ์๊ฒ ๋๊ฒจ์ค๋ค.
//AuthInterceptor์ preHandle ๋ฉ์๋์ ์ผ๋ถ
...
jwtProvider.verify(token);
User user = service.findById(userId);
request.setAttribute("user", user);
return true;
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ด์ ๋ ๋๋ถ๋ถ์ ์์ฒญ์์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ์ ๋ฅผ ์กฐํํ๋ ๋ก์ง์ ์ค๋ณต์ ์ค์ด๊ธฐ ์ํจ์ด๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ํ์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ปจํธ๋กค๋ฌ์ ๋๊ฒจ์ค User ๊ฐ์ฒด๋ ์์์ฑ ์ปจํ ์คํธ์์ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ์ง ์๋๋ค.
์ฆ, ์ํฐํฐ ๊ฐ์ฒด์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ ๋ํฐ์ฒดํน์ด ๋ฐ์ํ์ง ์๊ณ DB์๋ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ๋ ์ฟผ๋ฆฌ๊ฐ ๋ ์๊ฐ์ง ์๋๋ค.
๋จ์ํ ์ธํฐ์ ํฐ์์ ํ๋์ ํธ๋์ญ์ ์ด ๋๋ฌ์ผ๋ ๋น์ฐํ ์๋๋ค๊ณ ์๊ฐํ์ง๋ง, ํธ๊ธฐ์ฌ์ ์ธํฐ์ ํฐ์์๋ userId๋ง ์ธํ ํด์ฃผ๊ณ ์ด๋ ธํ ์ด์ ์ ์ฒ๋ฆฌํด์ฃผ๋ ArgumentResolver์์ ์ ์ ๋ฅผ ์กฐํ ํ ๋ฐํํ๋๋ก ์ฝ๋๋ฅผ ๋ณ๊ฒฝํด๋ณด๋ ์ปจํธ๋กค๋ฌ๋ก ๋์ด์จ ํด๋น ๊ฐ์ฒด๋ฅผ ์์์ฑ ์ปจํ ์คํธ์์ ๊ด๋ฆฌํด์ฃผ๋๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
//AuthArgumentResolver์ resolveArgument๋ฉ์๋
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();
String authorization =(String) request.getAttribute("authorization");
return authService.findUser(authorization);
}
์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๋ชจ๊ฐ์ฝ๋ฐฉ์ ๊ณ์๋ ๋ก์น์๊ฒ ์ง๋ฌธํด๋ณธ ๊ฒฐ๊ณผ
- ์ธํฐ์ ํฐ์์ ์กฐํํด์ค๋ ๊ฒฝ์ฐ๋ ์ ๊ธฐ์ ํธ๋์ญ์ ์ด ๋ซํ๊ณ ์ดํ์ ๋ค์ ์ด๋ฆฌ๋ ๊ตฌ์กฐ๋ผ์ ๊ทธ๋ฐ๊ฒ ๊ฐ๊ณ , ArgumentResolver์์ ์กฐํํ๋ ๊ฒฝ์ฐ์๋ resolver -> controller -> service ๊น์ง ํธ๋์ญ์ ์ด ์ฐ๊ฒฐ๋๋ ๊ตฌ์กฐ ๊ฐ๋ค.
- ์ผ๋จ ํธ๋์ญ์ ์ ์๋น์ค ๋ด์์๋ง ์ด๊ณ ๋ซ๋๊ฒ ์ข๋ค!
- ์ค๋ณต์ ์ ๊ฑฐํ๊ธฐ ์ํด์ ํ์ฌ ๊ตฌ์กฐ๋ก ๋ง๋ ๊ฑด ๊ด์ฐฎ๋ค! ๋์ค์ ์คํ๋ง ์ํ๋ฆฌํฐ ์ฌ์ฉํ๋ฉด ๊ตณ์ด ์ธํฐ์ ํฐ์์ ์กฐํ ์ํด๋ ํด๊ฒฐ์ด ๋๋ค
- pk๋ก ๊ฐ์ฒด๋ฅผ ์กฐํํด์์ผ ๋ํฐ์ฒดํน์ด ๋๋ค!
๋ผ๋ ๋ต๋ณ์ ๋ฐ์๋ค.
์ถ๊ฐ์ ์ผ๋ก ํ์ตํด๋ณผ ๋งํฌ๊น์ง!
์ผ๋จ ์ถ์ธก์ ํด๋ณด์๋ฉด, ์ธํฐ์ ํฐ์์ ์กฐํํ user ๊ฐ์ฒด๊ฐ request.setAttribute()๋ฅผ ํตํด ์ธํ ๋๋ ์์ ์ ํธ๋์ญ์ ์ด ๋ซํ๋ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ฉด ArgumentResovler์์ ์กฐํํ๋ ๊ฒฝ์ฐ๋ ์กฐํํ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ ํด๋น ํธ๋์ญ์ ์ด ์ ์ง๊ฐ ๋๊ณ ์๋๊ฑด๊ฐ.. ๋ผ๊ณ ์๊ฐ์ ํ๋๋ฐ ์์ง ํธ๋์ญ์ ๊ณผ ์์์ฑ ์ปจํ ์คํธ์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํด์ ์ถ๊ฐ ํ์ต์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
'Thinks > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL-220623 (0) | 2022.11.20 |
---|---|
TIL-220621 (0) | 2022.11.20 |
TIL-220620 (0) | 2022.11.20 |
TIL-220615 (0) | 2022.11.20 |
TIL-220613 (0) | 2022.11.20 |