Spring Security - 비밀번호 암호화하기
·
BackEnd/spring
1. Spring Security 의존성 추가- build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security'}   2. Config 설정- Security.java@Configurationpublic class SecurityConfig { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); }}   3. 암호화 방법dto로 회원 정보를 받았고, SignUpDto에 password를 포함한 다른 회원 관련 필드가 정의되어있다고 가정하면 passwordEncoder...
IntelliJ에서 yml 파일 관리하기: .gitignore와 환경변수
·
BackEnd/spring
application.yml에서 DB의 비밀번호, AWS 관련 정보와 같은 중요한 정보가 포함된다. 이 설정 파일을 그대로 깃허브에 올리면 중요한 설정 정보가 외부로 유출되는 위험이 있다.중요하고 민감한 정보가 유출되지 않도록 하는 두 가지 방법을 소개하고자 한다.  1. yml 파일을 추적하지 않도록 .gitignore 설정하기    -> .gitignore 파일에 코드 한 줄만 추가해주면 된다.       yml을 추적하지 않게 되어 .yml로 끝나는 모든 파일은 git push 해도 깃허브에 올라가지 않는다. .yml    2. IntelliJ에서 환경변수 사용하기1) Edit Configurations에 들어간다.    2) Environment variables가 화면에 보이지 않는다면 Modi..
Spring Boot에서 JSP 사용하기
·
BackEnd/spring
spring boot는 default로 thymleaf를 제공하기 때문에 jsp를 사용하려면 별도의 설정이 필요하다. 1. dependancy 설정// spring boot 3.0 버전 이상인 경우implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' 2. application.yml 설정spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp static-path-pattern..
CSRF / JWT / CSRF 토큰과 JWT의 차이점
·
BackEnd/spring
- CSRF (Cross-Site Request Forgery)란? CSRF는 웹 애플리케이션의 보안 취약점 중 하나로, 공격자가 사용자의 권한을 도용하여 사용자가 의도하지 않은 요청을 웹 애플리케이션에 보내는 공격을 의미한다. 공격자는 희생자가 이미 로그인한 상태에서 악의적인 요청을 실행하게 하여, 희생자의 계정으로 원치 않는 작업을 수행하도록 유도한다. 예를 들어, 희생자의 계정으로 금액을 이체하거나 계정 정보를 변경하는 등의 악의적인 작업을 수행할 수 있다. - CSRF 토큰 (CSRF Token)이란? CSRF 토큰은 웹 애플리케이션의 보안 취약성을 줄이기 위해 사용되는 보안 기술 중 하나이다. 사용자가 요청을 보낼 때마다 해당 요청에 대한 랜덤한 토큰을 함께 제공하고, 서버는 이 토큰을 검증하여..
Spring Security란?
·
BackEnd/spring
Spring Security란? Spring Security는 Java 애플리케이션에 인증 및 권한 부여를 모두 제공하는 데 중점을 둔 프레임워크이다. spring security는 filter 기반으로 동작하기 때문에 spring MVC 와 분리되어 관리 및 동작한다. 웹 애플리케이션의 인증(Authentication)과 인가(Authorization)를 처리하며, 보안 관련 기능을 제공하여 안전한 웹 애플리케이션을 개발할 수 있도록 도와준다. 주요 기능과 개념: 인증(Authentication): 사용자의 신원을 확인하는 과정이다. (ex. 로그인) 스프링 시큐리티는 다양한 인증 방식을 지원하며, 사용자의 아이디와 비밀번호를 검증하여 사용자의 로그인 여부를 결정한다. 인가(Authorization):..
[Spring Boot] Spring Security를 사용하여 권한 설정하는 방법
·
BackEnd/spring
1. 의존성 추가 : build.gradle 파일에 Spring Security 의존성을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-security' 2. Security Config 클래스 작성 : Spring Security의 설정을 정의하는 클래스를 작성한다. WebSecurityConfigurerAdapter를 상속받아 구현한다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exc..
[Spring Boot] 의존성 주입 / 객체 생성 방법 - 멤버변수와 생성자, @Configuration과 @Bean
·
BackEnd/spring
- 의존성 하나의 모듈이 다른 모듈을 사용하는 것.. (클래스 A가 클래스 B의 메서드를 사용 -> 클래스 A는 클래스 B에 의존한다. ) - 일반적인 객체 생성 방법 new로 객체를 생성하여 참조 PostService postService = new PostService(); - 의존성 주입(DI: Dependency Injection) 객체 생성, 의존성 설정을 외부에서 대신 수행한다. new 키워드를 사용하지 않고 멤버 변수 선언 후 생성자를 구현한다. @RestController @RequestMapping(value = "/post") public class PostController { PostService postService;//1. 멤버 변수 선언 public PostController(..
[Spring Boot] Spring Service
·
BackEnd/spring
계층형 아키텍처 패턴 중 Application Layer에 속한다. 시스템의 핵심 비지니스 로직을 구현하는 계층이다. (컨텐츠 정보 저장, 컨텐츠 추천, 회원 가입, 로그인, 탈퇴 등) view(웹/앱 여부 등)의 종류와 데이터베이스의 종류에 영향을 받지 않는 독립적인 계층이다. - 구현 클래스에 @Service Annotation을 사용한다. 파아미터로 전달된 데이터들의 검증 작업을 수행한다. Repository 계층을 활용하여 데이터베이스에 접근한다. 애플리케이션의 세부 영역별로 클래스를 생성하여 구현한다. - PostService.java @Service public class PostService { public PostDto getPost(Integer id) { System.out.printl..
[Spring Boot] HTTP Method와 데이터베이스 CRUD
·
BackEnd/spring
- HTTP란? Hyper Text(웹 페이지)를 컴퓨터가 주고 받기 위한 규약이다. 모든 브라우저에 웹 서버 등은 HTTP 표준에 따라 개발되고 통신한다. - HTTP Method란? HTTP 규약 중 하나로, 특정 자원에 대해 수행하는 행동의 종류를 명시한다. (자원의 생성, 조회, 수정, 삭제 등) HTTP Method를 사용하면 단일 URI로 다양한 동작을 정의할 수 있다. GET, POST, PUT, DELETE, PATCH 등의 Method를 제공한다. - 주로 사용되는 HTTP Method GET POST PUT DELETE - HTTP Method와 데이터베이스 CRUD DB 동작 대응되는 HTTP Method 설명 C (Create) POST 데이터를 저장 R (Read) GET 데이터를..
[Spring Boot] Request 파라미터 - Query String / Path Parameter / Request Body
·
BackEnd/spring
- Request 파라미터 Client가 Server에 요청(Request)할 때 추가적으로 전송하는 데이터 - 유형 Query String Path Parameter + 대용량 데이터의 경우 - Request Body 1. Query String URI 뒤에 ?key1=value1&key2=value2&... 형태로 작성 ex) http://localhost:8080/post?category=it&id=10 https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105 메서드 파라미터에 @RequestParam Annotaion 사용 name 요소는 Query String의 key에 매핑되고 value 값은 메서드 파라미터에 저장된다. http://..
yslle
'BackEnd' 카테고리의 글 목록