Spring Security와 CORS: 크로스 도메인 요청 처리 기법 알아보기
·
Spring/Spring Security
웹 애플리케이션을 개발하면서 보안과 리소스 공유는 중요한 고려사항이다. 이번에는 Spring Security와 CORS(Cross-Origin Resource Sharing)에 대해서 자세히 알아보자 1. 크로스 도메인(Cross-Domain) 이해하기 1-1. 크로스 도메인 정의: 크로스 도메인은 한 도메인에서 실행되는 웹 페이지가 다른 도메인의 리소스에 접근할 때 발생하는 상황을 의미한다. 예시: http://domain-a.com에서 로딩된 웹 페이지가 http://domain-b.com의 이미지나 API에 접근하는 것이다. domain-a.com: 여기서 로딩된 웹 페이지가 다른 도메인의 리소스에 접근하려고 한다. domain-b.com: 이 도메인은 이미지나 API와 같은 리소스를 제공한다. A..
Spring JPA - Entity
·
Spring/JPA
이번 포스트에서는 엔티티에 대해서 알아보자 1. 엔티티(Entity) 엔티티는 JPA가 데이터베이스와 상호작용하는데 필요한 주요 객체이다. 엔티티는 실제로 데이터베이스 테이블의 하나의 레코드를 나타내는 자바 객체이다. 이 엔티티는 데이터베이스에서 정보를 읽고, 변경하고, 생성하고, 삭제하는 모든 작업에 사용된다. 2. 엔티티를 만들기 위한 규칙 클래스 상단에 @Entity 어노테이션 적기 엔티티 클래스는 @Entity라는 어노테이션을 클래스에 표시해야 한다. 이것이 없으면 JPA는 이것을 엔티티로 인식하지 못한다. 기본 키: 반드시 기본 키(@Id 어노테이션이 붙은 필드)를 가지고 있어야 한다. 기본 키는 데이터베이스 테이블에서 각 레코드를 고유하게 식별하는 데(pk로) 사용된다. 기본 생성자: JPA ..
Spring Boot 3.1 & Spring Security 6: 로그인 & 메인 페이지 컨트롤러 (9편)
·
Spring/Spring Security
로그인 뷰를 보여주고 action을 실행시킬 로그인 컨트롤러와 메인페이지를 보여주게될 메인 컨트롤러를 작성한다. 1. @Controller - 로그인, 메인페이지 컨트롤러 1-1. LoginController 이 코드는 사용자의 로그인 및 로그아웃을 관리하는 컨트롤러이다. Spring의 @Controller 어노테이션을 사용하여 웹 요청을 처리하는 클래스임을 나타낸다. @Slf4j @RequiredArgsConstructor @Controller public class LoginController { /** * [View] 로그인 페이지를 엽니다. */ @GetMapping("/login") public String login() { return "login"; } /** * [Action] 로그인 프로..
Spring Boot 3 & Security 6 시리즈: AuthenticationProvider, 인증 핸들러 구현하기 (5편)
·
Spring/Spring Security
이번에는 시큐리티의 인증 제공자와 인증에 성공, 실패했을때 결과를 핸들링할 handler 클래스를 작성하자 1. 인증 제공자 클래스 작성 - CustomAuthenticationProvider 1-1. CustomAuthenticationProvider 클래스 작성 (인증 제공자) 이 코드는 CustomAuthenticationProvider라는 클래스로, 스프링 시큐리티의 AuthenticationProvider 인터페이스를 구현한 사용자 정의 인증 제공자이다. 이 클래스는 사용자의 인증을 처리하는 역할을 한다. @Slf4j @RequiredArgsConstructor public class CustomAuthenticationProvider implements AuthenticationProvider..
Spring Boot 3 & Security 6 시리즈: WebConfig 클래스 작성 (3편)
·
Spring/Spring Security
웹 설정을 추가로 정의하기 위해 WebMvcConfigurer를 구현해주는 WebConfig 클래스를 작성하자 1. WebConfig 설정하기 1-1. SSR(Server Side Rendering)전용 WebConfig 설정하기 WebMvcConfigurer를 구현하는 WebConfig 클래스를 작성한다. WebConfig는 웹 애플리케이션의 웹 설정을 정의하는 클래스다. 여기서는 인터셉터, 뷰 컨트롤러, 정적 리소스 핸들러 등을 설정한다. @Slf4j @RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { private final JwtTokenInterceptor jwtTokenInterceptor; @Overrid..
Spring Boot 3 & Security 6 시리즈: JWT 로그인 폼 구현 (1편)
·
Spring/Spring Security
Spring Security를 구현하기 전에 앞으로 사용할 JWT 토큰이 어떤 것인지에 대해서 알아보자 📌 서론 JWT (JSON Web Token)는 웹에서 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 제공하는 토큰이다. JWT는 세 부분으로 구성되며, 각 부분은 점(.)으로 구분된다. 아래의 링크에서 jwt 토큰을 Encoded, Decoded 해볼 수 있다. JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 1. JWT란 Header: Header는 JWT의 메타데이터를 포함하며, 주로 두 가지 정보를 담..