본문 바로가기

SPRING

(5)
스프링 시큐리티 인증/인가 리팩토링 사전 지식해당 글을 이해하기 위해 중요한 스프링 시큐리티 개념 몇 가지를 소개하겠습니다Json Web Token (JWT): 웹 토큰으로 사용자 인증 정보를 안전하게 전송하는 방식입니다.Filter: HTTP 요청을 처리하고 응답을 수정하는 데 사용되는 스프링 시큐리티의 주요 구성 요소입니다.Authentication 객체와 AuthenticationManager: Authentication 객체는 인증 요청을 나타내는 객체이며, AuthenticationManager는 이를 처리하고 인증을 수행하는 인터페이스입니다. AuthenticationManager는 여러 AuthenticationProvider를 이용하여 인증을 시도하고 성공하면 Authentication 객체를 반환합니다.Authenticat..
[SpringSecurity6] 메서드 수준 보안 ( with JWT ) 스프링 시큐리티는 다양하고 세밀한 보안 기능을 갖고 있습니다.그 중 하나가 비지니스 로직을 포함한 메서드를 보호하기 위한 메서드 수준 보안입니다.간단하게 어노테이션을 사용하여 권한에 따라 메서드를 보호할 수 있습니다  @EnableMethodSecurity@EnableJpaAuditing@SpringBootApplication@EnableMethodSecuritypublic class MinglecrmApplication { public static void main(String[] args) { SpringApplication.run(MinglecrmApplication.class, args); }} 메서드 수준 보안을 위해 가장 먼저 스프링 어플리케이션 클래스에 @EnableMe..
[토이프로젝트] SpringSecurity6 + JWT + Redis 인증/인가 구현 (3) Jwt 토큰 검증 로직 추가하기이제 회원가입과 로그인까지 완성했습니다.그렇다면 토큰을 사용해 검증하는 로직을 필터를 통해 구현해보겠습니다!토큰으로부터 PayLoad 추출 함수JwtProvider.javapackage com.toy.filterloginpjt.util;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import com.toy.filterloginpjt.dto.SignInRequestDTO;import com.toy.filterloginpjt.redis.RedisDao;import com.toy.filterloginpjt.repository.Use..
[토이프로젝트] SpringSecurity6 + JWT + Redis 인증/인가 구현 (2) RestAPI 명세HTTP Method 분류 URI 비고POST회원 가입/api/v1/auth/signup인증 필요 XPOST로그인/api/v1/auth/signin인증 필요 XGET토큰 갱신/api/v1/auth/renewRefreshToken 사용GET담당 고객 조회/api/v1/customers 회원가입 RestAPI 만들기회원가입을 위한 DTO 생성알아보면 좋은 토픽 ⇒ DTO는 왜 쓰는건가요? 회원 가입 시 필요한 정보는 name, email, password 정보입니다.따라서 이를 위한 SignUpRequestDTO, SignUpResponseDTO를 만듭시다. dto 패키지 생성 후 그 안에 만들어주세요 SignUpRequestDTO.javapackage com.toy.filterloginp..
[토이프로젝트] SpringSecurity6 + JWT + Redis 인증/인가 구현 (1) 개요Spring Security + JWT + Redis를 사용하여 인증/인가 기능을 구현하려 합니다.Json Web Token에 대한 기본 지식과 스프링을 어느 정도 알고 보시는게 좋습니다.  Spring SecuritySpringSecurity를 사용하는 이유SpringSecurity 팀은 보안 전문가들로 이루어져 있습니다. 새로 발견되는 보안 문제가 하루에만 수 백가지가 된다고 합니다.SpringSecurity는 여러 일반적인 보안 공격으로부터 우리의 앱을 방어할 수 있도록 합니다.또한 스프링 시큐리티 구조를 잘 이해하고 있으면 추 후 쉽게 커스텀할 수 있습니다!특징스프링 시큐리티는 Filter를 기반으로 인증/인가를 수행합니다.또한 기본적으로 세션 기반의 Form-Login을 제공합니다.저희는 F..