[Spring] @Controller, @RestController 차이 보통 웹에서 화면 전환 없이 이루어지는 동작들은 대부분 비동기 통신이다. 비동기 통신을 하기 위해서는 클라이언트가 서버로 요청 메시지의 body에 데이터를 담아서 보내야 하고, 서버도 클라이언트에 응답하기 위해서 body에 데이터를 담아 보내야한다.이 때의 body를 각각 Request Body와 Response Body라고 부르는데, 이러한 body에 담기는 데이터 형식은 JSON이다. @RequestBody 어노테이션은 이러한 비동기 통신에서 쓰이는 body안의 데이터(JSON)를 자바 객체(VO)로 변환해주는 어노테이션이고, @ResponseBody 어노테이션은 보내려는 자바 객체(VO)를 데이터객체(JSON)로 바꿔 body안에 넣어주는 어노테이션이다. @Controller 와 @RestContr.. 2025. 1. 21. [Spring] @Scheduled로 RefreshToken 블랙리스팅하기 2024.11.27 - [# Study/Spring] - [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (2) [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (2)Spring Security + JWT 다중토큰 코드를 작성하려고 한다.우선, 이전 Srping Security + JWT 단일토큰 포스팅의 코드를 가져와 수정하여 작성할 것이기 때문에 코드를 보려면 링크를 따라가면 확인 할 수 있jiy0ung.tistory.com 이전 포스팅인 Spring Security + JWT 다중토큰 로그인을 공부하면서 문제점을 발견했다.로그인을하고 로그아웃을 하지 않으면 재로그인시 RefreshToken이 또 생성되어서 한 ID의 RefreshT.. 2024. 11. 30. [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (2) Spring Security + JWT 다중토큰 코드를 작성하려고 한다.우선, 이전 Srping Security + JWT 단일토큰 포스팅의 코드를 가져와 수정하여 작성할 것이기 때문에 코드를 보려면 링크를 따라가면 확인 할 수 있다.https://jiy0ung.tistory.com/26 [Spring] 스프링 시큐리티 JWT 구현 해보기 (단일 토큰)스프링 시큐리티를 활용하여 JWT 기반의 인증/인가를 구현하고, MySQL 데이터베이스를 활용하여 회원 정보 저장을 해볼 것이다.서버는 웹 페이지를 응답하는 것이 아닌 API 클라이언트 요청을 통해jiy0ung.tistory.com 이 코드에서 다중 토큰으로 변경을 위해 수정 할 부분은 로그인 성공 시 처리 부분과 JWT 검증 필터 부분이다.로그인 성공 시.. 2024. 11. 27. [Spring] Spring Security + JWT 구현 해보기 (다중 토큰) (1) 이전 포스팅에서 스프링 시큐리티와 JWT를 사용하여 단일 토큰 인증/인가에 대해서 실습하였다. 이전 포스팅https://jiy0ung.tistory.com/26 [Spring] 스프링 시큐리티 JWT 구현 해보기 (단일 토큰)스프링 시큐리티를 활용하여 JWT 기반의 인증/인가를 구현하고, MySQL 데이터베이스를 활용하여 회원 정보 저장을 해볼 것이다.서버는 웹 페이지를 응답하는 것이 아닌 API 클라이언트 요청을 통해jiy0ung.tistory.com 이어서 다중토큰(RefreshToken, AccessToken)에 대해 알아보려한다. 스프링 시큐리티 JWT 단일 토큰은 아래와 같이 사용된다.로그인 성공 JWT 발급 : 서버측 -> 클라이언트로 JWT 발급권한이 필요한 모든 요청 : 클라이언트 ->.. 2024. 11. 26. [Spring] Spring Security + JWT 구현하기 (단일 토큰) HTTP는 기본적으로 Stateless를 지향한다.(무상태 프로토콜) 클라이언트와 서버 간의 각 요청은 독립적으로 처리되며, 서버는 이전 요청에 상태를 기억하지 않는다.이 특성 덕분에 서버의 확장성이 높고 대량의 트래픽이 발생해도 대처할 수 있고, 서버가 분리 되어 있는 경우 특정 DB/서버에 의존하지 않아도 인증할 수 있는 장점이 있다.하지만, state-ful(세션)방식보다 비교적 많은 양의 데이터가 반복적으로 전송되면 네트워크 성능 저하가 발생할 수 있고, 데이터 노출로 인한 보안적인 문제가 존재한다. 이 단점을 보완하기 위해 데이터 압축 및 서명을 위해 JWT를 사용한다. 스프링 시큐리티를 활용하여 JWT 기반의 인증/인가를 구현하고, MySQL 데이터베이스를 활용하여 회원 정보 저장을 해볼 것이.. 2024. 11. 26. [Spring] Spring Security 개념과 작동방식 00. 시작하며이전에 2024.05.29 - [# Study/Spring] - [Spring] Spring Security, JWT 간단 정리 써놓은 포스팅을 보면 너어어어무 간단하게 정리만 해둔 것 같아서 공부하면서 정리하려고 한다. Spring Security에 개념과 작동방식에 대해 알아보려한다.01. Spring Security 란?Spring Security는 Spring 프로젝트에서 애플리케이션의 인증, 인가 등의 보안을 담당하는 스프링의 하위 프레임워크다. 인증과 인가인증(Authentication): 애플리케이션에 접근하는 유저의 신원을 확인하는 과정인가(Authorization): 유저가 어떠한 자원(resource)에 접근할 수 있는지 검증하는 과정02. Spring Security 사.. 2024. 11. 16. [Spring] Spring Security, JWT 간단 정리 Spring Security스프링 기반 어플리케이션의 보안(인증과 인가)를 담당하는 스프링의 하위 프레임워크.보안과 관련되어 체계적으로 많은 옵션을 제공하여 줌으로써 개발자 입장에서 보안 관련 로직을 따로 작성하지 않아도 된다. JWTJSON Web Token의 약자로 사용자의 정보를 담아 암호화 한 JSON 객체기존의 Cookie와 Session는 각각 보안 취약점과 stateless 위반의 문제가 있었지만 JWT는 이를 해역하기 위해 등장했다. JWT는 암호화 알고리즘을 통해 디지털로 서명되기 때문에 인증되었고, 신뢰할 수 있는 토큰이다.JWT는 공개키 암호 방식(PKC) 즉 비대칭키 방식이다. JWT 구조Header서명에 사용할 암호화 알고리즘 관련 정보와 토큰의 유형을 알리는 정보가 담겨있다.{ .. 2024. 5. 29. 이전 1 다음