UserRoleEnum를 이용 권한 설정

song yuheon·2023년 9월 2일
0

Trouble Shooting

목록 보기
8/57
post-thumbnail

UserRoleEnum에서의 권한 설정

문제 상황


UserRoleEnum에서 UserRoleEnum role = UserRoleEnum.USER; 코드를 실행하면 role에는 어떻게 "user"라는 문자열이 들어가는가는지가 도저히 이해가 안 된다.


// 이해가 안되는 부분 -------------------------
	UserRoleEnum role = UserRoleEnum.USER;
// -----------------------------------------

// UserRoleEnum 클래스
package com.sparta.memo.entity;

public enum UserRoleEnum {
    USER(Authority.USER),  // 사용자 권한
    ADMIN(Authority.ADMIN);  // 관리자 권한

    private final String authority;

    UserRoleEnum(String authority) {
        this.authority = authority;
    }

    public String getAuthority() {
        return this.authority;
    }

    public static class Authority {
        public static final String USER = "ROLE_USER";
        public static final String ADMIN = "ROLE_ADMIN";
    }
}

개념 이해를 통한 해결


UserRoleEnum이라는 enum 클래스는 두 개의 상수, USERADMIN,을 가지고 있다. 각 상수는 생성자를 통해 초기화된다. 코드를 살펴보면 USER 상수는 Authority.USER로 초기화되며 이 Authority.USER는 "ROLE_USER"라는 문자열로 정의되어 있다. UserRoleEnum.USERauthority 값은 "ROLE_USER"가 된다. 이렇게 해서 UserRoleEnum role = UserRoleEnum.USER; 코드를 사용하면 role 객체의 authority 변수는 "ROLE_USER"로 초기화된다.


profile
backend_Devloper

0개의 댓글