24. JWT 임시 토큰 만들어서 테스트 해보기
by 볼빵빵오춘기MyFilter1.java - filter1() 코드 추가
코드추가1
요청 시 header에 Authorization 키에 무엇이 담겨오는지 확인 한다.
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("필터1");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String headerAuth= req.getHeader("Authorization");
System.out.println("headerAuth : "+headerAuth);
chain.doFilter(req, res);
}
실행결과1
get방식으로 http://localhost:8080/home 을 URL에 쳐본다.
⇒ headerAuth 가 null 인 것을 확인 가능하다.
코드추가2
post 요청일 때만 Authorization 키에 무엇이 담겨있는지 확인할 수 있도록 한다.
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("필터3");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
// 토큰 : cos 라고 가정하에 진행 test
if(req.getMethod().equals("POST")){
String headerAuth= req.getHeader("Authorization");
System.out.println("headerAuth : "+headerAuth);
}
chain.doFilter(req, res);
}
실행결과2
postman 을 이용하여 header부분에 key값은 Authorization, value에는 cos 라고 넣어서 post방식으로 test한다.
⇒ post로 요청할 시 headerAuth에 cos 출력된다.
+ 추가로 postman에서 405가 뜨는 것을 확인하면서 error에 “Method Not Allowed”가 뜨는데 컨트롤러에 post로 요청이 들어왔을 때 코드는 작성하지 않았기때문
RestApiController.java - token() 추가
‘MyFilter1.java - filter1() 코드 추가’ - ‘코드 추가2’ - ‘실행 결과’ 에서 postman error 때문에 추가하는 코드이다.
기존에 controller에 /home 부분만 추가했기 때문에 그 전에는 http://localhost:8080/home 으로만 test 하였다.
@PostMapping("/token")
public String token(){return "<h1>token</h1>";
}
실행결과
- postman에서 test
- url : http://localhost:8080/token
- header - key : Authorization, value : cos
- post 방식
⇒ 정상적으로 응답하는 것을 확인한다.(+ sysout해서 cos도 나오는 것도 같이 확인)
MyFilter1.java - filter1() 코드 추가
headerAuth가 cos 일경우에만 체인이 실행되도록 코드 추가한다.
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("필터3");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
// 토큰 : cos 라고 가정하에 진행 test
if(req.getMethod().equals("POST")){
String headerAuth= req.getHeader("Authorization");
System.out.println("headerAuth : "+headerAuth);
if(headerAuth.equals("cos")){
chain.doFilter(req, res);
}else{
PrintWriter out = res.getWriter();
out.println("no certification");
}
}
}
실행결과
- 키 Authorization에 value를 cos가 아닌 값을 넣을 경우
- 키 Authorization에 value를 cos를 넣었을 경우
결과적으로
임의로 Authorization에 값을 cos라고 넣어서 진행하였으나
→ id, pw 정상적으로 들어와서 로그인이 완료 되면 토큰을 만들어주고 그걸 응답을 해준다.
→ 요청할 때 마다 header에 Authorization에 value 값으로 토큰을 가지고 온다.
→ 그 때 토큰이 넘어오면 이 토큰이 내가 만든 토큰이 맞는지만 검증하면 된다.(RSA, HS256)
'강의 따라하기 > JWT' 카테고리의 다른 글
26. 회원가입 로직 누락 (0) | 2024.08.25 |
---|---|
25. JWT를 위한 로그인 시도 (0) | 2024.08.25 |
23. JWT Filter 등록 테스트 (0) | 2024.08.25 |
22. JWT Bearer 인증 방식 (0) | 2024.08.25 |
21. JWT를 위한 security 설정 (0) | 2024.08.25 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기