User의 권한 정보를 데이터베이스에서 관리하기 위한 단계
- User의 권한 정보를 저장하기 위한 테이블 생성
@ElementCollection(fetch = FetchType.EAGER)
private List<String> roles = new ArrayList<>();
/* List, Set 같은 컬렉션 타입의 필드는 @ElementCollection 애너테이션을 추가하면
User 권한 정보와 관련된 별도의 엔티티 클래스를 생성하지 않아도 간단하게 매핑 처리됨 */
- 회원 가입 시, User의 권한 정보(Role)를 데이터베이스에 저장
- MEMBER_ROLES 테이블에 저장
- MemberService에 추가
List<String> roles = authorityUtils.createRoles(member.getEmail());
member.setRoles(roles);
// authorityUtils.createRoles(member.getEmail());를 통해
// 회원의 권한 정보(List<String> roles)를 생성한 뒤 member 객체에 넘겨줌
- 파라미터로 전달된 이메일 주소가 application.yml 파일의 mail.address.admin 프로퍼티에 정의된
이메일 주소와 동일하면 관리자 Role 목록(ADMIN_ROLES_STRING)을 리턴하고, 그 외에는
일반 사용자 Role 목록(USER_ROLES_STRING)을 리턴
- 로그인 인증 시, User의 권한 정보를 데이터베이스에서 조회