유튜브에서 스프링시큐리티를 심화교육하면서 조금더 레벨업 하고자 한다.
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이라고 전달을 해주면 올바른 접근을 할 수 있고 만약 다른 값을 보낸다면
아예 접근을 막을 수 있다.
해당 값을 개인키로 설정을 해놓고
클라이언트 측에서 로그인을 시도 했을 때 회원정보를 담은 토큰을 발급해서 응답해준 후
클라이언트에서 특정사이트를 요청을 할 때 토큰을 같이 받아온다. 그 때 위에 방법을 이용해서
이 토큰이 내가 만든 토큰이 맞는지 확인을 해서 해당 사용자를 검증해주면 된다.
'프로젝트 > SpringSecurity' 카테고리의 다른 글
[Spring Security] 14. JWT를 이용해 로그인전 회원가입 및 db관련 수정사항 (0) | 2023.07.18 |
---|---|
[Spring Security] 13. JWT를 이용해 로그인 테스트하기 (0) | 2023.07.17 |
[Spring Security] 11. JWT를 이용하기위한 filter 등록 테스트 (0) | 2023.07.11 |
[Spring Security] 10. JWT를 이용하기위한 security 설정 (0) | 2023.07.11 |
[Spring Security] 9. OAuth 네이버로그인 (0) | 2023.07.07 |
댓글