[JWT] jwt 임시토큰 만들어보기

devkwon·2024년 1월 19일

다음과 같이 필터를 설정한다.

public class MYFilter1 implements Filter {


    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;

        // 제대로 된 토큰이 오면 컨트롤러 진입
        if(req.getMethod().equals("POST")){
            System.out.println("POST 요청");
            String headerAuth = req.getHeader("Authorization");
            System.out.println(headerAuth);
            System.out.println("filter 1");
            if(headerAuth.equals("hello")) {
                chain.doFilter(req, res);
            }else{
                PrintWriter out = res.getWriter();
                out.println("응답실패");
            }
        }
    }
}

POST로 header에 Autorization 키에다가 값이 hello인 요청이 오면 올바른 요청이라 컨트롤러로 진입할 것이고 아니면 다음 체인으로 넘어갈 것이다.

먼저 hello를 올바르게 넣어보자

성공적으로 컨트롤러로 들어가서 값을 가져오는 것을 확인할 수 있다.

만약 다른 값이 들어온다면?

응답실패가 뜨는 것을 볼 수 있다.

이를 응용해서 앞으로 로그인이 완료되면 토큰을 만들어주고 그걸 응답으로 준 후에 요청이 올 때마다 Authroization에 값을 토큰 값으로 받고 해당 토큰이 유효한지만 검증하면(RSA,HS256) 올바른 요청인지 확인할 수 있게 된다.

0개의 댓글