본문 바로가기
프로젝트/SpringSecurity

[Spring Security] 12. JWT를 이용하기위한 임시토큰만들어 테스트해보기

by dantriss 2023. 7. 12.

유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다.

IDE : IntelliJ

언어 : Java 8

스프링부트 버전 : 2.7.13

DB : MySQL

빌드관리 도구 : Maven

OS : iOS

참고유튜브 : 메타코딩


임시로 토큰을 만들어서 어떻게 작동을 하는지 그 원리에 대해서 파악해보자

 

MyFilter3로 이동해서 오버라이딩한 doFilter에 파라메터인 servletRequest 와 servletResponse를 

각가 HttpServletRequest와 HttpServletResponse로 받아준다.

HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;

 

HttpServletRequest에서 getHeader 부분에서 Authorization 라는 부분을 받아서 headerAuth에 받아준다.

String headerAuth = request.getHeader("Authorization");

 

값이 잘 전달되는지 포스트맨에서 값을 전달해서 확인해보면 값이 잘 전달되는것을 확인할 수 있다.

 

이제 들어오는 값이 token 인 경우 필터를 통해서 각각 권한에 맞는 접근을 허용하고 

그렇지 않으면 인증이 되지 않은 토큰이므로 받아주지 않으면 된다.

if (request.getMethod().equals("POST")){
    System.out.println("headerAuth : "+headerAuth);

    if (headerAuth.equals("token")){
        filterChain.doFilter(request, response);

    } else {
        PrintWriter outPrintWriter = response.getWriter();
        outPrintWriter.println("인증안됨");
    }


}

 

RestApiController에 token 추가

 

값을 token이라고 전달을 해주면 올바른 접근을 할 수 있고 만약 다른 값을 보낸다면

 

아예 접근을 막을 수 있다.

 

해당 값을 개인키로 설정을 해놓고 

클라이언트 측에서 로그인을 시도 했을 때 회원정보를 담은 토큰을 발급해서 응답해준 후

클라이언트에서 특정사이트를 요청을 할 때 토큰을 같이 받아온다. 그 때 위에 방법을 이용해서

이 토큰이 내가 만든 토큰이 맞는지 확인을 해서 해당 사용자를 검증해주면 된다.

댓글