728x90
스프링 기반 REST API 개발
5. REST API 보안 적용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/spring-rest-api-study/tree/chap05-01_add_account
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/spring_rest-api/dashboard
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
1. Account 도메인 추가
OAuth2로 인증을 하려면 일단 Account 부터
- id
- password
- roels
package me.freelife.rest.accounts;
import lombok.*;
import javax.persistence.*;
import java.util.Set;
@Entity
@Getter @Setter @EqualsAndHashCode(of = "id")
@Builder @NoArgsConstructor @AllArgsConstructor
public class Account {
@Id @GeneratedValue
private Integer id;
private String email;
private String password;
@ElementCollection(fetch = FetchType.EAGER)
@Enumerated(EnumType.STRING)
private Set<AccountRole> roles;
}
AccountRoles enum 객체 추가
- ADMIN, USER
package me.freelife.rest.accounts;
public enum AccountRole {
ADMIN, USER
}
JPA 맵핑
@Table(“Users”)
JPA enumeration collection mapping
하나의 enum만 있는 것이 아니라 여러개의 enum을 가질 수 있으므로 ElementCollection이라고 맵핑 해줘야 함
기본으로 LAZY
모드인데 가져올 ROLE이 매우적고 account를 가져올때마다 필요한 정보라 EAGER
모드로 Fetch하도록 설정
@ElementCollection(fetch = FetchType.EAGER)
@Enumerated(EnumType.STRING)
private Set<AccountRole> roles;
Event에 owner 추가
Event에서만 owner를 참조할 수 있도록 단방향 맵핑
@ManyToOne
private Account manager; //account 관리자
728x90
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 기반 REST API 개발] 5-3. 예외 테스트 (0) | 2020.04.03 |
---|---|
[스프링 기반 REST API 개발] 5-2. 스프링 시큐리티 적용 (0) | 2020.04.02 |
[스프링 기반 REST API 개발] 4-4. 테스트 코드 리팩토링 (0) | 2020.03.31 |
[스프링 기반 REST API 개발] 4-3. Events 수정 API 구현 (0) | 2020.03.30 |
[스프링 기반 REST API 개발] 4-2. Event 조회 API 구현 (0) | 2020.03.29 |
댓글