Spring boot

spring/게시판 api

Spring boot 게시판 API 서버 제작 (9) - 로그인 - 인증 로직

이번에는 로그인 관련하여 인증 로직을 추가해보겠습니다. 전체적인 인증 로직은 다음과 같습니다. 클라이언트가 API 를 요청한다. 요청시에 로그인해서 발급받은 access token을 HTTP Authorization 헤더에 담아서 보내준다. JwtAuthenticationFilter에서 토큰을 검증하고, 토큰으로 요청한 사용자 정보를 데이터베이스에서 조회해서 SecurityContext에 저장한다. 요청한 API url에 따라서 접근 허용 여부를 검사한다. 접근에 성공하면 요청한 API url에 따라 Controller에서 작업을 수행한다. 접근에 실패하면 인증되지 않은 사용자의 경우 401응답을 내려주는 곳으로 redirect 요청한 자원에 접근 권한이 없는 경우 403응답을 내려주는 곳으로 redir..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (8) - 로그인 - 조회, 삭제 로직

이번에는 member를 조회하고 삭제하는 기능을 추가해 보겠습니다. MemberDto 생성 먼저 Member 데이터 전송을 위한 MemberDto 객체를 생성합니다. @Data //자동으로 필드에 대한 getter, setter, equals(), hashCode(), toString() 메서드 등을 생성 @AllArgsConstructor @NoArgsConstructor public class MemberDto { public Long id; private String email; private String username; private String nickname; public static MemberDto toDto(Member member){ return new MemberDto(member...

spring/게시판 api

Spring boot 게시판 API 서버 제작 (7) - 로그인 - Exception 처리

이번 글에서는 잠시 쉬어가는 시간으로 Exception처리를 해보려고 합니다. 기존에 예외처리는 모두 RuntimeException으로 처리를 해서 오류가 났을때 어디서 났는지 확인하기가 어려웠는데요, 이번에 각 기능별로 Exception처리를 달리하여 오류가 발생했을 때 어디서 발생했는지 확인하기 쉽게 만들어보겠습니다. Exception 클래스 생성 각 기능에 대해서 Exceptino 클래스를 생성하겠습니다. 현재까지 구현된 기능중에서 발생할 만한 Exception들은 다음과 같습니다. LoginFailureException.java public class LoginFailureException extends RuntimeException { } MemberEmailAlreadyExistsExcepti..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (6) - 로그인 - 웹 계층 구현

이번에는 SignService를 이용하여 회원가입과 로그인의 웹 계층 api를 개발해보겠습니다. Dependency 추가 build.gradle에 객체 검증을 위한 validation을 추가해 줍니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-v..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (5) - 로그인 - 서비스 로직 구현

이번 시간에는 저번 시간에 구현한 JWT 관련 기능을 사용하는 TokenService와 이를 활용한 SignService를 만들어 보겠습니다. TokenService application.yml 설정 먼저 TokenService에서 사용할 설정 값들을 application.yml에 추가하겠습니다. spring: ... profiles: active: local include: secret 이렇게 설정하면 profile이 local로 활성화가 되고, secret을 include하여 application-sercret.yml 파일에 있는 값을 읽을 수 있습니다. application-secret.yml 파일에는 다음과 같이 작성합니다. jwt: key: access: tmpAccessKey refresh: ..

spring/study

[Spring] MockitoExtension에 대해서 알아보자

Mockito는 유닛 테스트에서 모의 객체를 생성할 수 있게 해줍니다. 이를 통해서 의존성 및 동작의 모의 객체를 생성하여 컴포넌트의 기능을 독립적으로 테스트 할 수 있습니다. 그리고 MockitoExtension은 spring Framework와 통합되는 Mockito의 확장 프레임워크입니다. 이번 글에서는 MockitoExtension에 대한 정리와 간단한 사용법등을 알아보겠습니다. MockitoExtension이란? MockitoExtension은 Spring Framework와 통합되는 Mockito 프레임워크의 확장 프레임워크입니다. @Mock 어노테이션을 사용하여 Spring이 관리하는 컴포넌트에 모의 객체(mock objects)를 자동으로 주입할 수 있습니다. 이는 개발자가 유닛 테스트에서..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (4) - 로그인 - 비밀번호 암호화 및 토큰 발급과 검증

이번에는 비밀번호를 그대로 사용할 수 없기 때문에 암호화를 해보고, 로그인을 위한 토큰을 발급받고 검증까지 진행해보겠습니다. 비밀번호 암호화 비밀번호 암호화는 Spring Security에서 제공하는 PasswordEncoder를 사용하겠습니다. PasswordEncoder는 암호화된 비밀번호를 생성하거나 저장된 비밀번호화 사용자가 입력한 비밀번호를 비교하는 기능이 있습니다. 바로 코드로 보겠습니다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) t..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (1) - 프로젝트 생성

먼저 프로젝트 생성부터 해보겠습니다. 1.https://start.spring.io/ 접속 start.spring.io에 접속하면 스프링 부트 제작을 위한 설정을 쉽게 할 수 있습니다. Dependencies를 좀 살펴 보자면 Spring Web : 웹 개발 라이브러리, RESTful 웹 서비스를 구축하고, HTTP 요청 및 응답 처리, 데이터 바인딩, 예외 처리 등을 지원 Spring Data JPA : JPA(Java Persistence API)를 기반으로 하는 데이터 액세스 계층을 구축할 수 있는 라이브러리 Lombok : 자바 언어의 보일러플레이트 코드를 줄이기 위한 라이브러리로, Getter, Setter, EqualsAndHashCode, ToString 등의 메소드를 애노테이션으로 대체할 ..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (0)

스프링 부트를 사용하여 게시판 API 서버를 제작해보려고 합니다. 처음부터 끝까지 모두 혼자 개발하면 좋겠지만, 아직 스프링 프레임워크를 공부중인 상태인지라 인프런 강의와 여러 블로그를 참조하여 제작을 진행할 예정입니다. 스프링 공부 목적이 웹보다는 api 개발에 가깝기 때문에 api개발로 진행하겠습니다. (강의 몇개만 들으면 금방 제작 가능할 줄 알았는데 공부해야 할 양이 생각보다 많습니다.) 구현할 기능은 다음과 같습니다. 로그인 계층형 카테고리 게시판 계층형 대댓글 사용자 간에 쪽지 송수신 페이지 번호를 이용한 페이징 처리 동적 검색 조건 배포 그리고 제가 참고하는 블로그입니다. https://kukekyakya.tistory.com/category/Spring/%EA%B2%8C%EC%8B%9C%E..

spring/study

[Spring] @EnableWebSecurity 에 대해서 알아보자

Spring Security는 Spring Framework에서 인증과 권한 부여를 수행하는 데 사용되는 강력한 보안 프레임워크입니다. Spring Security는 Spring Framework에서 자체적으로 보안 구성을 제공하며, 다양한 보안 기능을 제공하는 다양한 확장 모듈을 제공합니다. 이번 글에서는 Spring Security를 사용하여 웹 보안을 구성할 때 사용하는 @EnableWebSecurity 어노테이션에 대해 알아보겠습니다. 1. @EnableWebSecurity 어노테이션 @EnableWebSecurity 어노테이션은 Spring Security를 사용하여 웹 보안을 구성할 때 사용하는 어노테이션입니다. 이 어노테이션을 사용하면 Spring Security와 관련된 구성을 할 수 있습..

얼킴
'Spring boot' 태그의 글 목록 (3 Page)