Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

JAN's History

JWT 임시 토큰으로 필터 테스트 본문

JWT

JWT 임시 토큰으로 필터 테스트

JANNNNNN 2024. 7. 6. 16:59

토큰을 검증하기 위한 필터 만들기

필터를 이용하여 토큰 검증을 진행했을 때, 유효하지 않다면 해당 컨트롤러로 더이상 접근하지 못하도록 할 수 있습니다.

public class MyFilter3 implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) servletRequest;
        HttpServletResponse res = (HttpServletResponse) servletResponse;
        res.setCharacterEncoding("utf-8");

        // 만약, token을 검증하여, Controller에 접근 여부 설정!
        if (req.getMethod().equals("POST")) {
            String auth_header = req.getHeader("Authorization");

            if(auth_header.equals("secret")) {
                filterChain.doFilter(req, res);
            } else {
                PrintWriter writer = res.getWriter();
                writer.println("인증 안됨");
            }
        } else {
        	filterChain.doFilter(servletRequest, servletResponse);
        }
    }
}

1. POST로 요청이 왔다면 헤더에 Authorization 값을 꺼냅니다.

2. 해당 값이 임시로 만들어놓은 키 값인 secret이 맞는지 확인해봅니다.

  • 맞다면 doFilter를 타게 하고
  • 틀리다면 "인증안됨" return

해당 필터를 SecurityConfig 설정에 등록

http.addFilterBefore(new MyFilter3(), SecurityContextPersistenceFilter.class);  // securityFilter가 실행되기 전에!

POSTMAN으로 테스트해보기

잘못된 토큰으로 요청했을 때