JAN's History
JWT 임시 토큰으로 필터 테스트 본문
토큰을 검증하기 위한 필터 만들기
필터를 이용하여 토큰 검증을 진행했을 때, 유효하지 않다면 해당 컨트롤러로 더이상 접근하지 못하도록 할 수 있습니다.
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으로 테스트해보기
잘못된 토큰으로 요청했을 때
'JWT' 카테고리의 다른 글
JWT 구현하기 : 로그인 요청 시 JWT 응답(Response) (0) | 2024.07.10 |
---|---|
JWT를 구현할 때 권한관리를 하기 위해 Authentication을 return 해야하는 이유 (0) | 2024.07.08 |
JWT를 구현하기전, Filter 등록 테스트 (0) | 2024.07.04 |
JWT를 구현하기전, 인증/인가 동작 원리: FilterChain을 이해해보자! (0) | 2024.07.03 |
JWT Basic, Bearer 인증 방식 (0) | 2024.07.01 |