diff --git a/src/main/java/com/kamco/cd/kamcoback/menu/MenuApiController.java b/src/main/java/com/kamco/cd/kamcoback/menu/MenuApiController.java index 93dd3dfe..baff5190 100644 --- a/src/main/java/com/kamco/cd/kamcoback/menu/MenuApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/menu/MenuApiController.java @@ -12,6 +12,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; +import java.nio.file.AccessDeniedException; import java.util.LinkedHashMap; import java.util.List; import lombok.RequiredArgsConstructor; @@ -85,7 +86,7 @@ public class MenuApiController { @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) }) @PostMapping("/auth") - public ApiResponseDto getFindByRoleRedis() { + public ApiResponseDto getFindByRoleRedis() throws AccessDeniedException { menuService.getFindByRoleRedis(); return ApiResponseDto.createOK(null); } diff --git a/src/main/java/com/kamco/cd/kamcoback/menu/service/MenuService.java b/src/main/java/com/kamco/cd/kamcoback/menu/service/MenuService.java index dd0cabfc..be354c56 100644 --- a/src/main/java/com/kamco/cd/kamcoback/menu/service/MenuService.java +++ b/src/main/java/com/kamco/cd/kamcoback/menu/service/MenuService.java @@ -4,8 +4,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import com.kamco.cd.kamcoback.common.enums.RoleType; +import com.kamco.cd.kamcoback.common.utils.UserUtil; import com.kamco.cd.kamcoback.menu.dto.MenuDto; import com.kamco.cd.kamcoback.postgres.core.MenuCoreService; +import java.nio.file.AccessDeniedException; import java.util.ArrayList; import java.util.List; import lombok.RequiredArgsConstructor; @@ -20,6 +22,7 @@ public class MenuService { private final MenuCoreService menuCoreService; private final StringRedisTemplate redisTemplate; private final ObjectMapper objectMapper; + private final UserUtil userUtil; @Cacheable(value = "menuFindAll") public List getFindAll() { @@ -31,7 +34,12 @@ public class MenuService { * * @return */ - public void getFindByRoleRedis() { + public void getFindByRoleRedis() throws AccessDeniedException { + + if (!userUtil.getRole().equals(RoleType.ADMIN.getId())) { + throw new AccessDeniedException("권한을 확인해 주세요."); + } + for (RoleType role : RoleType.values()) { List menus = menuCoreService.getFindByRole(role.name());