목록스파르타 코딩 클럽 | 자바 심화 과정/Spring Master (숙련 주차) (13)
LUMI_dev
회원가입 예외처리 SignupRequestDto package com.sparta.springauth.dto;import jakarta.validation.constraints.Email;import jakarta.validation.constraints.NotBlank;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class SignupRequestDto { @NotBlank private String username; @NotBlank private String password; @Email @NotBlank private String email; private boolean admin = f..

Java는 null 값에 대한 접근에 대해 NullPointerException 오류가 발행하기 때문에 이러한 부분을 예방Spring은 null 확인 뿐 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation 제공 Bean Validation어노테이션내용@NotNullnull 불가@NotEmptynull, “” 불가@NotBlanknull, “”. “ “ 불가@Size문자 길이 측정@Max최대값@Min최소값@Positive양수@Negative음수@EmailE-mail 형식@Pattern정규 표현식 프로젝트 설정 build.gradle에 추가implementation 'org.springframework.boot:spring-boot-starter-valid..

API 접근 권한 제어 이해'일반 사용자'는 관리자 페이지에 접속이 인가되지 않아야 함 1. Spring Security에 "권한 (Authority)" 설정방법 회원 상세정보 (UserDetailsImpl) 통해 "권한 (Authority)" 설정 가능권한을 1개 이상 설정 가능 "권한 이름" 규칙 → "ROLE_" 로 시작해야 함 예) "ADMIN" 권한 부여 → "ROLE_ADMIN" / "USER" 권한 부여 → "ROLE_USER" public enum UserRoleEnum { USER(Authority.USER), // 사용자 권한 ADMIN(Authority.ADMIN); // 관리자 권한 private final String authority; UserR..

로그인 처리 과정 이해 스프링 시큐리티 사용 전 스프링 시큐리티 사용 후 Client의 요청은 모두 Spring Security를 거침Spring Security 역할인증/인가 성공 시 : Controller 로 Client 요청 전달 ( Client 요청 + 사용자 정보 (UserDetails))실패 시: Controller 로 Client 요청 전달되지 않음 (Client 에게 Error Response 보냄)로그인 처리 과정 Client로그인 시도로그인 시도할 username, password 정보 → HTTP body 로 전달 (POST 요청)로그인 시도 URL 은 WebSecurityConfig 클래스에서 변경 가능"POST /api/user/login" 로 설정하는 법 @Beanpublic S..

'Spring Security' 프레임워크는 Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌 build.gradle > 'Spring Security' 프레임워크 추가// Securityimplementation 'org.springframework.boot:spring-boot-starter-security' SpringAuthApplication 'Spring Security' 활성화 Spring Security 제외 해제@SpringBootApplicationpublic class SpringAuthApplication { public static void main(String[] args) { SpringApplication.run(SpringAuthApplicatio..

Filter : Web 애플리케이션에서 관리되는 영역: Client로부터 오는 요청과 응답에 대해 최초/최종 단계의 위치 : 요청과 응답의 정보를 변경하거나 부가적인 기능 추가 가능: @CookieValue라는 어노테이션을 사용하지 못함 : 주로 범용적으로 처리해야 하는 작업에 활용 (ex. 로깅, 보안 처리) : 인증과 인가에 관련된 로직들 처리 장점)인증, 인가와 관련된 로직을 비즈니스 로직과 분리하여 관리할 수 있음 Filter Chain Filter는 여러 개가 Chain 형식으로 묶여서 처리될 수 있음 실습) 요청 URL의 인가 처리 및 인증 처리를 진행할 수 있는 Filter와 요청 URL을 로깅해주는 Filter의 구현 LoggingFilter.javapackage com.sparta.s..