Spring(14)
-
Spring_JWT Token Setting
JWT (Json Web Token) 일반적으로 클라이언트와 서버 통신 시 권한 인가를 위해 사용하는 토큰 클라이언트의 세션 상태를 저장하는 것이 아니라 필요한 정보를 토큰 body에 저장해 클라이언트가 가지고 있고 그것을 증명서처럼 사용 웹에서는 주로 Cookie에 저장하여 사용 기본 구성 xxxxx.yyyyy.zzzzz Header (xxxxx)— JWT인 토큰의 유형이나 HMAC SHA256 또는 RSA와 같이 사용되는 해시 알고리즘이 무엇으로 사용했는지 등 정보가 담긴다. Base64Url로 인코딩되어있다. Payload (yyyyy)— 클라이언트에 대한 정보나, meta Data같은 내용이 들어있고, Base64Url로 인코딩되어있다. Signature (zzzzz)— header에서 지정한 알..
2023.05.15 -
SpringSecurity_CORS 설정
CORS Cross-Origin Resource Sharing Policy CorsConfigurationSource 사용 코드 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.se..
2023.04.10 -
Spring Security Swagger 예외처리
public class SecurityConfig { // 인증, 인가 서비스가 필요하지 않은 endpoin 적용 @Bean public WebSecurityCustomizer configure(){ return (web) -> web.ignoring() .antMatchers( "/v3/api-docs/**", "/swagger-ui/**" ); }
2023.04.03 -
Spring Swagger
스웨거 REST API를 문서화하는 도구 build.gradle 추가 implementation 'org.springdoc:springdoc-openapi-ui:1.6.6' Config 파일 생성 package com.example.yutnoribackend.configuration; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import org.springdoc.core.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;..
2023.04.03 -
Spring Security
스프링 시큐리티 스프링 기반의 애플리케이션의 보안(인증, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 장점 : 보안 관련해서 체계적으로 많은 옵션 제공 개발자가 보안 로직을 일일이 작성하지 않아도 됨 기본 용어 접근 주체 : 보호된 리소스에 접근하는 대상 인증 : 보호된 리소스에접근한 대상에 대해 누구인지, 래플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정 인가 : 해당 리소스에 대해 접근 가능한 권한을 가지고 있는 지 확인하는 과정 권한 : 인가 과정에서 해당 리소스에 대한 제한된 최소한의 권한을 가졌는지 확인 동작 1. HTTP 요청 수신 클라이언트로 부터 요청이 오면 인증 및 권한 부여 목적으로 일련의 필터를 거치게 됨 2. UsernamePasswordAuthentication F..
2023.04.03 -
JPA Mapping
@Entity JPA가 관리하는 클래스 속성 @Entity(name = “”) JPA에서 사용할 엔티티 이름 지정 기본값 : 클래스 이름 그대로 사용 @Table 엔티티와 매핑할 테이블 지정 속성 @Table(name = “”) 매핑할 이름 지정 기본값 : 엔티티 이름 catalog 데이터베이스 catalog 매핑 schema 데이터베이스 schema 매핑 uniqueConstraints(DDL) DDL 생성시에 유니크 제약 조건 생성 데이터베이스 스키마 자동 생성 속성값 create 기존 테이블 삭제 후 다시 생성 create-drop create와 동일하나 종료 시점에 데이블 DROP update 변경 분만 반영 validate 엔티티와 테이블이 정상 매핑되었는지만 확인 none 아무 속성도 사용하지..
2023.03.31