전체 글
-
RestTemplate -3 (kakao)spring boot 2023. 5. 16. 12:23
하나의 서비스에 로그인을 하면 그 서비스에 해당하는 기능만을 사용했었다. OAuth 2.0은 이러한 문제를 해결하기 위해 등장했습니다. OAuth 2.0은 인증 및 권한 부여를 위한 프로토콜로서, 사용자의 계정 정보를 공유하지 않고도 다른 애플리케이션에서 제공되는 서비스에 접근할 수 있도록 해줍니다. 사용자는 인증된 상태로 다른 애플리케이션에 접근하고, 필요한 권한을 부여받아 리소스에 접근할 수 있습니다. 따라서 OAuth 2.0은 보안과 개인 정보 보호를 고려한 다른 서비스 간의 연동을 가능하게 하고, 사용자에게 편의성을 제공하는 역할을 수행합니다. OAuth 2.0(Open Authorization 2.0, OAuth2)은 인증을 위한 개방형 표준 프로토콜입니다. Authentication : 인증,..
-
RestTemplate 1 (서버 or 서버)spring boot 2023. 5. 15. 11:02
학습 목표 1.RestTmplate 사용이유 RestTemplate은 Spring Framework에서 제공하는 HTTP 통신을 간편하게 처리할 수 있는 클래스입니다. org.springframework.web.client.RestTemplate 패키지에 존재 합니다. RESTful 웹 서비스와의 통신을 위해 주로 사용되고 기본적으로 동기 방식으로 처리되며, 비동기 방식으로 처리하고 싶을 경우 AsyncRestTemplate를 사용하면 됩니다. RestTemplate의 대표적인 기능 HTTP 요청 메서드 지원: GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 사용하여 원격 서버에 요청을 보낼 수 있습니다. URL 변수와 쿼리 파라미터 지원: URL에 동적인 값을 전달하거나 쿼리 파라..
-
JPA & Security - 18 (시큐리티 사용 및 로그인 페이지 커스텀 )spring boot 2023. 5. 15. 09:09
CSRF Cross Site Request Forgery란? 사이트 간 요청 위조이라는 뜻으로, 웹사이트 취약점 공격의 하나다. 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 공격 방식이다. 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다. ex) 해커가 사용자의 권한을 도용하여 광고성 글을 올린다.
-
JPA & Security - 17 (시큐리티 사용전 주소 설계 확인)spring boot 2023. 5. 11. 15:11
학습 목표 인증(Authentication)과 권한 부여 (Authorization)를 구분하여서 기억하자. 시큐리티 주소 설계 고민해보기 회원가입 페이지 로그인 페이지 index 페이지 // 권한 부여 페이지는 /auth /joinPage - 앞에 /auth 를 붙일 예정 // /auth/loginPage / 시큐리티 taglibs https://www.baeldung.com/spring-security-taglibs 인증된 사용자 Welcome Back,
-
JPA & security (스프링 기본 파싱 전략spring boot 2023. 5. 10. 15:34
학습 목표 반드시 기억할 것은 HTML form 태그는 기본적으로 method 방식을 get, post만 지원한다. 1. 스프링 부트 컨트롤러는 key = value 데이터를 자동으로 파싱 해서 변수에 담아 준다. 1. 스프링 부트 컨트롤러는 key = value 데이터를 자동으로 파싱 해서 변수에 담아 준다. FORM 태그 METHOD -> get 처리 특징 : body 로 데이터를 담아 보내지 않음 form에 한계 get, post 가능 REST FULL API 활용 못하고 있음 PUT,DELETE - form 말고 같다 --> ajax로 restfull 방식으로 변경해준다. view/temp.jsp form 태스트 username : password : email : 회원가입 1. 스프링 부트 컨트..
-
JPA & Security (예외처리)spring boot 2023. 5. 10. 12:28
학습 목표 1. @RestControllerAdvice 기능 만들어 보기 2. 예외 처리 클래스 만들어 보기 (1단계) 3. 예외 처리 클래스 만들어 보기 (2단계) build.gradle에 선언해주었는지 확인 implementation 'org.springframework.boot:spring-boot-starter-validation' NotBlank 추가 package com.tenco.blog.model; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Genera..
-
JPA & security (update, delete, 더티체킹)spring boot 2023. 5. 10. 12:23
학습 목표 1.update 기능 구현 해보기 (email, password) 2. dirty checking 사용해보기 (영속성 컨텍스 개념) 더티 체킹(dirty checking)은 JPA에서 영속성(persistence) 컨텍스트가 관리하는 엔티티 객체의 변경사항을 감지하는 메커니즘입니다. 영속성 컨텍스트는 엔티티를 수정하면 엔티티의 상태를 자동으로 감지하고, 수정된 상태를 데이터베이스에 자동으로 반영합니다. 이를 더티 체킹이라고 합니다. 즉 더티 체킹은 상태 변경 검사 입니다. JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에 자동으로 반영해줍니다(commit처리) // JSON 던질 예정 // Update를 할 때 // 1 기존 로직 처리 // 2 dirty ch..
-
JPA 페이징 사용해보기spring boot 2023. 5. 10. 12:17
package com.tenco.blog.controller; import java.util.List; import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.G..