hmkim 05-21
250521 김혜민 사용자 검증 서비스 추가 및 리팩토링
@bc5e24e5973815b1f76617e3b7d7e66a6bfce4d9
src/main/java/com/takensoft/cms/accesCtrl/service/Impl/AccesCtrlServiceImpl.java
--- src/main/java/com/takensoft/cms/accesCtrl/service/Impl/AccesCtrlServiceImpl.java
+++ src/main/java/com/takensoft/cms/accesCtrl/service/Impl/AccesCtrlServiceImpl.java
@@ -7,7 +7,7 @@
 import com.takensoft.cms.codeManage.vo.CodeManageVO;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.slf4j.Logger;
@@ -43,9 +43,9 @@
 public class AccesCtrlServiceImpl extends EgovAbstractServiceImpl implements AccesCtrlService {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(AccesCtrlServiceImpl.class);
-    private final JWTUtil jwtUtil;
     private final AccesCtrlDAO accesCtrlDAO;
     private final CodeManageService codeManageService;
+    private final VerificationService verificationService;
 
     /**
      * @param accesCtrlVO - 접근 제어 정보
@@ -64,7 +64,7 @@
     public Map<String, Object> accesCtrlSave(AccesCtrlVO accesCtrlVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -101,7 +101,7 @@
     public int accesCtrlUpdate(AccesCtrlVO accesCtrlVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
--- src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
+++ src/main/java/com/takensoft/cms/author/service/Impl/AuthorServiceImpl.java
@@ -4,11 +4,10 @@
 import com.takensoft.cms.author.service.AuthorService;
 import com.takensoft.cms.author.vo.AuthorVO;
 import com.takensoft.cms.dept.service.Impl.DeptServiceImpl;
-import com.takensoft.cms.dept.vo.DeptAuthrtVO;
 import com.takensoft.cms.menu.service.MenuAuthorService;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
@@ -36,8 +35,8 @@
 public class AuthorServiceImpl extends EgovAbstractServiceImpl implements AuthorService {
     private final AuthorDAO authorDAO;
     private final MenuAuthorService menuAuthorService;
-    private final JWTUtil jwtUtil;
     private final DeptServiceImpl deptService;
+    private final VerificationService verificationService;
 
     /**
      * @param authorVO - 권한 정보
@@ -133,7 +132,7 @@
     public int authorSave(AuthorVO authorVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -173,7 +172,7 @@
     public int authorUpdate(AuthorVO authorVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
@@ -12,7 +12,7 @@
 import com.takensoft.common.file.service.FileMngService;
 import com.takensoft.common.file.vo.FileMngVO;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.jsoup.Jsoup;
@@ -55,10 +55,8 @@
     private final BbsMngDAO bbsMngDAO;
     private final FileDAO fileDAO;
     private final WordMngDAO wordMngDAO;
-
+    private final VerificationService verificationService;
     private final IdgenService bbsIdgn;
-    private final JWTUtil jwtUtil;
-
     private final FileMngService fileMngService;
 
     @Value("${front.url}")
@@ -143,7 +141,7 @@
             bbsCn.setBbsId(bbsId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -365,7 +363,7 @@
 //            }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -439,7 +437,7 @@
     public int deleteBbsCn(BbsCnVO bbsCnVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -613,7 +611,7 @@
         try {
             HashMap<String, Object> result = new HashMap<>();
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -665,7 +663,7 @@
             HashMap<String, Object> result = new HashMap<>();
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -711,7 +709,7 @@
     public int deleteAns(BbsCnVO bbsCnVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if(writer == null || writer.isEmpty()){
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/bbs/service/Impl/BbsMngServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/BbsMngServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/BbsMngServiceImpl.java
@@ -12,7 +12,7 @@
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
@@ -49,8 +49,7 @@
     private final IdgenService bbsMngIdgn;
     private final IdgenService bbsRouterIdgn;
     private final MenuService menuService;
-
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param bbsMngVO - 게시판 정보
@@ -101,7 +100,7 @@
             bbsMngVO.setBbsMngId(bbsMngId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -271,7 +270,7 @@
     public int updateBbsMng(BbsMngVO bbsMngVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -350,7 +349,7 @@
     public int deleteBbsMng(BbsMngVO bbsMngVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/bbs/service/Impl/BbsTypeMngServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/BbsTypeMngServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/BbsTypeMngServiceImpl.java
@@ -5,7 +5,7 @@
 import com.takensoft.cms.bbs.vo.BbsTypeMngVO;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
@@ -35,7 +35,7 @@
 public class BbsTypeMngServiceImpl extends EgovAbstractServiceImpl implements BbsTypeMngService {
     private final BbsTypeMngDAO bbsTypeMngDAO;
     private final IdgenService bbsTypeIdgn;
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param bbsTypeMngVO - 게시판 유형 관리 정보
@@ -59,7 +59,7 @@
             bbsTypeMngVO.setBbsTypeId(bbsTypeMngId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/bbs/service/Impl/CmntServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/CmntServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/CmntServiceImpl.java
@@ -5,7 +5,7 @@
 import com.takensoft.cms.bbs.service.CmntService;
 import com.takensoft.cms.bbs.vo.CmntVO;
 import com.takensoft.common.exception.*;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
@@ -35,8 +35,8 @@
 public class CmntServiceImpl extends EgovAbstractServiceImpl implements CmntService {
 
     private final CmntDAO cmntDAO;
-    private final JWTUtil jwtUtil;
     private final WordMngDAO wordMngDAO;
+    private final VerificationService verificationService;
 
     /**
      * @param cmntVO - 게시판 댓글 정보
@@ -66,7 +66,7 @@
             }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -168,7 +168,7 @@
             }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -202,7 +202,7 @@
     public int deleteCmnt(CmntVO cmntVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/bbs/service/Impl/WordMngServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/WordMngServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/WordMngServiceImpl.java
@@ -5,7 +5,7 @@
 import com.takensoft.cms.bbs.vo.WordMngVO;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
@@ -33,7 +33,7 @@
 public class WordMngServiceImpl extends EgovAbstractServiceImpl implements WordMngService {
 
     private final WordMngDAO wordMngDAO;
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param wordList - 금지어 목록 정보
@@ -50,7 +50,7 @@
     public int saveWords(HashMap<String, Object> wordList) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/cntxtPth/service/Impl/CntxtPthServiceImpl.java
--- src/main/java/com/takensoft/cms/cntxtPth/service/Impl/CntxtPthServiceImpl.java
+++ src/main/java/com/takensoft/cms/cntxtPth/service/Impl/CntxtPthServiceImpl.java
@@ -5,7 +5,7 @@
 import com.takensoft.cms.cntxtPth.vo.CntxtPthVO;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
@@ -31,8 +31,8 @@
 @RequiredArgsConstructor
 public class CntxtPthServiceImpl extends EgovAbstractServiceImpl implements CntxtPthService {
     private final CntxtPthDAO cntxtPthDAO;
-    private final JWTUtil jwtUtil;
     private final IdgenService cntxtPthIdgn;
+    private final VerificationService verificationService;
 
     /**
      * @return String - 컨텍스트 패스 경로
@@ -74,7 +74,7 @@
     public int cntxtPthSave(CntxtPthVO cntxtPthVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/codeManage/service/Impl/CodeManageServiceImpl.java
--- src/main/java/com/takensoft/cms/codeManage/service/Impl/CodeManageServiceImpl.java
+++ src/main/java/com/takensoft/cms/codeManage/service/Impl/CodeManageServiceImpl.java
@@ -4,7 +4,7 @@
 import com.takensoft.cms.codeManage.service.CodeManageService;
 import com.takensoft.cms.codeManage.vo.CodeManageVO;
 import com.takensoft.common.exception.*;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.HierachyVO;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
@@ -42,8 +42,8 @@
 public class CodeManageServiceImpl extends EgovAbstractServiceImpl implements CodeManageService {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(CodeManageServiceImpl.class);
-    private final JWTUtil jwtUtil;
     private final CodeManageDAO codeManageDAO;
+    private final VerificationService verificationService;
 
     /**
      * @param codeManageVO - 공통코드 정보
@@ -96,7 +96,7 @@
             }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -132,7 +132,7 @@
     public int cdUpdate(CodeManageVO codeManageVO){
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -370,7 +370,7 @@
     public int updateList(List<HierachyVO> deptList) {
         int result = 0;
         // 등록된 토큰에서 사용자 정보 조회
-        String writer = jwtUtil.getWriter();
+        String writer = verificationService.getCurrentUserId();
         if (writer == null || writer.isEmpty()) {
             throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
         }
src/main/java/com/takensoft/cms/contsType/service/Impl/ContsTypeServiceImpl.java
--- src/main/java/com/takensoft/cms/contsType/service/Impl/ContsTypeServiceImpl.java
+++ src/main/java/com/takensoft/cms/contsType/service/Impl/ContsTypeServiceImpl.java
@@ -12,7 +12,7 @@
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
@@ -49,9 +49,9 @@
     private final ContsTypeDAO contsTypeDAO;
     private final BbsRouterDAO bbsRouterDAO;
     private final IdgenService contsTypeIdgn;
-    private final JWTUtil jwtUtil;
     private final MenuService menuService; // 메뉴 인터페이스
     private final MenuDAO menuDAO;
+    private final VerificationService verificationService;
 
     /**
      * @param contsEngNm - 콘텐츠 영문명
@@ -124,7 +124,7 @@
             contsTypeVO.setContsId(contsId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -182,7 +182,7 @@
             // 콘텐츠 유형 수정 결과
             int result = 0;
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
--- src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
+++ src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
@@ -11,7 +11,7 @@
 import com.takensoft.common.exception.CustomNotFoundException;
 import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.util.Secret;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
@@ -44,9 +44,9 @@
 public class DeptServiceImpl extends EgovAbstractServiceImpl implements DeptService {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(DeptServiceImpl.class);
-    private final JWTUtil jwtUtil;
     private final DeptDAO deptDAO;
     private final IdgenService deptIdgn;
+    private final VerificationService verificationService;
 
     /**
      * @param deptVO - 부서 정보 VO
@@ -80,7 +80,7 @@
             }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -132,7 +132,7 @@
             int result = 0;
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -256,7 +256,7 @@
             // 부서 정보 수정 결과
             int result = 0;
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -423,7 +423,7 @@
         try {
             int result = 0;
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
--- src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
+++ src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
@@ -13,8 +13,8 @@
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.util.HttpRequestUtil;
-import com.takensoft.common.util.JWTUtil;
 import com.takensoft.common.util.Secret;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
@@ -41,13 +41,13 @@
 @Service("admMbrService")
 @RequiredArgsConstructor
 public class AdmMbrServiceImpl extends EgovAbstractServiceImpl implements AdmMbrService {
-    private final JWTUtil jwtUtil;
     private final IdgenService mberIdgn;
     private final HttpRequestUtil httpRequestUtil;
     private final BCryptPasswordEncoder bCryptPasswordEncoder;
     private final AdmMbrDAO admMbrDAO;
     private final MberService mbrService;
     private final DeptService deptService;
+    private final VerificationService verificationService;
 
     /**
      * @param params - 회원정보
@@ -162,7 +162,7 @@
             }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -244,7 +244,7 @@
             joinDTO.setFrstRegIp(ip);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/mber/service/Impl/MberServiceImpl.java
--- src/main/java/com/takensoft/cms/mber/service/Impl/MberServiceImpl.java
+++ src/main/java/com/takensoft/cms/mber/service/Impl/MberServiceImpl.java
@@ -8,8 +8,8 @@
 import com.takensoft.cms.mber.vo.MberVO;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.util.HttpRequestUtil;
-import com.takensoft.common.util.JWTUtil;
 import com.takensoft.common.util.Secret;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
@@ -42,8 +42,8 @@
     private final MberDAO mberDAO;
     private final IdgenService mberIdgn;
     private final BCryptPasswordEncoder bCryptPasswordEncoder;
-    private final JWTUtil jwtUtil;
     private final HttpRequestUtil httpRequestUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param username -회원이름
@@ -129,7 +129,7 @@
             joinDTO.setFrstRegIp(httpRequestUtil.getIp(req));
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -182,7 +182,7 @@
     public boolean passwordCheck(PasswordDTO passwordDTO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
@@ -8,7 +8,7 @@
 import com.takensoft.cms.menu.vo.MenuAuthorVO;
 import com.takensoft.cms.menu.vo.MenuVO;
 import com.takensoft.common.exception.*;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
@@ -38,7 +38,7 @@
     private final MenuDAO menuDAO;
     private final MenuAuthorDAO menuAuthorDAO;
     private final AuthorDAO authorDAO;
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param id - 메뉴 ID
@@ -178,7 +178,7 @@
             if(!changedMenuList.isEmpty()) {
                 for (HashMap<String, Object> menu : changedMenuList) {
                     // 등록된 토큰에서 사용자 정보 조회
-                    String writer = jwtUtil.getWriter();
+                    String writer = verificationService.getCurrentUserId();
                     if (writer == null || writer.isEmpty()) {
                         throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
                     }
src/main/java/com/takensoft/cms/menu/service/Impl/MenuDgstfnServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuDgstfnServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuDgstfnServiceImpl.java
@@ -5,8 +5,9 @@
 import com.takensoft.cms.menu.vo.MenuDgstfnVO;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.util.HttpRequestUtil;
-import com.takensoft.common.util.JWTUtil;
+import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
@@ -35,8 +36,8 @@
 
     private final IdgenService menuDgstfnIdgn;
     private final MenuDgstfnDAO menuDgstfnDAO;
-    private final JWTUtil jwtUtil;
     private final HttpRequestUtil httpRequestUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param
@@ -128,7 +129,7 @@
             menuDgstfnVO.setMenuDgstfnId(menuDgstfnId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
@@ -11,7 +11,7 @@
 import com.takensoft.common.HierachyVO;
 import com.takensoft.common.exception.*;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
@@ -52,7 +52,7 @@
     private final MenuAuthorService menuAuthorService;
     private final MenuAuthorDAO menuAuthorDAO;
     private final IdgenService menuIdgn;
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param menuVO - 메뉴 VO
@@ -98,7 +98,7 @@
             }
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -255,7 +255,7 @@
     public int MenuUpdate(MenuVO menuVO) {
         try{
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -360,7 +360,7 @@
     public int menuDelete(MenuVO menuVO) {
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -431,7 +431,7 @@
         int result = 0;
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
--- src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
+++ src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
@@ -10,7 +10,7 @@
 import com.takensoft.common.file.service.FileMngService;
 import com.takensoft.common.file.vo.FileMngVO;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
@@ -36,12 +36,11 @@
 @Service("popupService")
 @RequiredArgsConstructor
 public class PopupServiceImpl extends EgovAbstractServiceImpl implements PopupService {
-
-    private final JWTUtil jwtUtil;
     private final PopupDAO popupDAO;
     private final IdgenService popupIdgn;
     private final FileMngService fileMngService;
     private final CodeManageService codeManageService;
+    private final VerificationService verificationService;
 
     /**
      * @param popupVO - 팝업 등록 정보를 포함하는 객체
@@ -64,7 +63,7 @@
             popupVO.setPopupId(popupId);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -220,7 +219,7 @@
     public int popupUpdate(PopupVO popupVO, List<MultipartFile> multipartFileList){
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -279,7 +278,7 @@
     public int popupDelete(PopupVO popupVO){
         try {
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/cms/prvcInqHstry/service/Impl/PrvcInqHstryServiceImpl.java
--- src/main/java/com/takensoft/cms/prvcInqHstry/service/Impl/PrvcInqHstryServiceImpl.java
+++ src/main/java/com/takensoft/cms/prvcInqHstry/service/Impl/PrvcInqHstryServiceImpl.java
@@ -7,8 +7,8 @@
 import com.takensoft.cms.prvcInqHstry.vo.PrvcInqHstryVO;
 import com.takensoft.common.Pagination;
 import com.takensoft.common.exception.*;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.util.HttpRequestUtil;
-import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
@@ -37,10 +37,11 @@
 @RequiredArgsConstructor
 public class PrvcInqHstryServiceImpl extends EgovAbstractServiceImpl implements PrvcInqHstryService {
 
-    private final JWTUtil jwtUtil;
     private final HttpRequestUtil httpRequestUtil;
     private final PrvcInqHstryDAO prvcInqHstryDAO;
     private final CodeManageService codeManageService;
+    private final VerificationService verificationService;
+
 
     /**
      * @param request - HttpServletRequest 객체
@@ -62,7 +63,7 @@
             prvcInqHstryVO.setInqIp(ipAdd);
 
             // 등록된 토큰에서 사용자 정보 조회
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/common/config/RedisConfig.java
--- src/main/java/com/takensoft/common/config/RedisConfig.java
+++ src/main/java/com/takensoft/common/config/RedisConfig.java
@@ -1,12 +1,18 @@
 package com.takensoft.common.config;
 
+import io.lettuce.core.ClientOptions;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
+import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
 import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.time.Duration;
 
 /**
  * @author takensoft
@@ -17,7 +23,7 @@
  *
  * redis 설정을 위한 Config
  */
-
+@Slf4j
 @Configuration
 public class RedisConfig {
 
@@ -25,18 +31,56 @@
     private String redisHost;
     @Value("${redis.port}")
     private int redisPort;
+    @Value("${redis.timeout}")
+    private int timeout;
+    @Value("${redis.password}")
+    private String redisPassword;
+
 
     @Bean
     public RedisConnectionFactory redisConnectionFactory() {
-        return new LettuceConnectionFactory(redisHost, redisPort);
+        RedisStandaloneConfiguration redisConfig = new RedisStandaloneConfiguration();
+        redisConfig.setHostName(redisHost);
+        redisConfig.setPort(redisPort);
+
+        // 비밀번호가 설정되어 있으면 적용
+        if (!redisPassword.isEmpty()) {
+            redisConfig.setPassword(redisPassword);
+        }
+
+        // Lettuce 클라이언트 설정
+        LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
+                .commandTimeout(Duration.ofMillis(timeout))
+                .clientOptions(ClientOptions.builder()
+                        .disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
+                        .autoReconnect(true)
+                        .build())
+                .build();
+
+        return new LettuceConnectionFactory(redisConfig, clientConfig);
     }
     @Bean
     public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
-        RedisTemplate<String, String> redisTemp = new RedisTemplate<>();
-        redisTemp.setConnectionFactory(redisConnectionFactory);
-        redisTemp.setKeySerializer(new StringRedisSerializer());
-        redisTemp.setValueSerializer(new StringRedisSerializer());
-        return redisTemp;
+        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
+        redisTemplate.setConnectionFactory(redisConnectionFactory);
+        redisTemplate.setKeySerializer(new StringRedisSerializer());
+        redisTemplate.setValueSerializer(new StringRedisSerializer());
+        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
+        redisTemplate.afterPropertiesSet();
+
+        return redisTemplate;
     }
 
+    @Bean
+    public boolean checkRedisConnection(RedisConnectionFactory redisConnectionFactory) {
+        try {
+            redisConnectionFactory.getConnection().ping();
+            log.info("Redis 연결 성공: {}:{}", redisHost, redisPort);
+            return true;
+        } catch (Exception e) {
+            log.error("Redis 연결 실패: {}", e.getMessage());
+            return false;
+        }
+    }
 }
src/main/java/com/takensoft/common/file/service/Impl/FileMngServiceImpl.java
--- src/main/java/com/takensoft/common/file/service/Impl/FileMngServiceImpl.java
+++ src/main/java/com/takensoft/common/file/service/Impl/FileMngServiceImpl.java
@@ -6,9 +6,8 @@
 import com.takensoft.common.file.service.FileService;
 import com.takensoft.common.file.vo.FileMngVO;
 import com.takensoft.common.idgen.service.IdgenService;
-import com.takensoft.common.util.JWTUtil;
+import com.takensoft.common.service.VerificationService;
 import lombok.RequiredArgsConstructor;
-import org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.dao.DataAccessException;
 import org.springframework.stereotype.Service;
@@ -37,7 +36,7 @@
     private final FileMngDAO fileMngDAO;
     private final IdgenService fileMngIdgn;
     private final FileService fileService;
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     /**
      * @param fileMngVO - 파일매니저 정보
@@ -65,7 +64,7 @@
             fileMngVO.setFileMngId(fileMngId);
 
             // 작성자 생성
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
@@ -113,7 +112,7 @@
             int result = 0;
 
             // 수정자 생성
-            String writer = jwtUtil.getWriter();
+            String writer = verificationService.getCurrentUserId();
             if (writer == null || writer.isEmpty()) {
                 throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
             }
src/main/java/com/takensoft/common/file/service/Impl/FileServiceImpl.java
--- src/main/java/com/takensoft/common/file/service/Impl/FileServiceImpl.java
+++ src/main/java/com/takensoft/common/file/service/Impl/FileServiceImpl.java
@@ -4,8 +4,8 @@
 import com.takensoft.common.file.dao.FileDAO;
 import com.takensoft.common.file.service.FileService;
 import com.takensoft.common.file.vo.FileVO;
+import com.takensoft.common.service.VerificationService;
 import com.takensoft.common.util.FileUtil;
-import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.beans.factory.annotation.Value;
@@ -42,7 +42,7 @@
 public class FileServiceImpl extends EgovAbstractServiceImpl implements FileService {
 
     private final FileDAO fileDAO;
-    private final JWTUtil jwtUtil;
+    private final VerificationService verificationService;
 
     @Value("${front.url}")
     private String frontUrl;
@@ -127,7 +127,7 @@
                 fileVO.setExtnNm(extsn); // 확장자
                 fileVO.setFileSz(mg); // 크기
                 // 등록자 생성
-                String writer = jwtUtil.getWriter();
+                String writer = verificationService.getCurrentUserId();
                 if(writer == null || writer.isEmpty()){
                     throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
                 }
src/main/java/com/takensoft/common/filter/LoginFilter.java
--- src/main/java/com/takensoft/common/filter/LoginFilter.java
+++ src/main/java/com/takensoft/common/filter/LoginFilter.java
@@ -72,7 +72,7 @@
      * LoginFilter 생성자
      */
     public LoginFilter(AuthenticationManager authenticationManager, JWTUtil jwtUtil, RefreshTokenService refreshTokenService, LgnHstryService lgnHstryService, HttpRequestUtil httpRequestUtil,
-                      LoginModeService loginModeService,LoginPolicyService loginPolicyService,SessionUtil sessionUtil, @Value("${jwt.accessTime}")long aTime, @Value("${jwt.refreshTime}")long rTime, @Value("${cookie.time}")int ctime, RedisTemplate<String, String> redisTemplate) {
+                       LoginModeService loginModeService,LoginPolicyService loginPolicyService,SessionUtil sessionUtil, @Value("${jwt.accessTime}")long aTime, @Value("${jwt.refreshTime}")long rTime, @Value("${cookie.time}")int ctime, RedisTemplate<String, String> redisTemplate) {
         this.authenticationManager = authenticationManager;
         this.jwtUtil = jwtUtil;
         this.refreshTokenService = refreshTokenService;
 
src/main/java/com/takensoft/common/service/VerificationService.java (added)
+++ src/main/java/com/takensoft/common/service/VerificationService.java
@@ -0,0 +1,90 @@
+package com.takensoft.common.service;
+
+import com.takensoft.cms.mber.vo.MberVO;
+import com.takensoft.common.exception.CustomAccessDeniedException;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author takensoft
+ * @since 2025.01.22
+ * @modification
+ *     since    |    author    | description
+ *  2025.01.22  |  takensoft   | 최초 등록
+ *
+ * 사용자 검증 서비스
+ */
+@Service("authorizationService")
+@RequiredArgsConstructor
+public class VerificationService {
+
+    /**
+     * @return 현재 인증된 사용자 정보
+     * @throws CustomAccessDeniedException 인증되지 않은 경우 예외 발생
+     *
+     * 현재 로그인된 사용자를 가져오는 공통 메서드
+     */
+    private MberVO getAuthenticatedUser() {
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        if(authentication == null || !authentication.isAuthenticated()) {
+            throw new CustomAccessDeniedException("접근 권한이 없습니다.");
+        }
+
+        Object principal = authentication.getPrincipal();
+        if(!(principal instanceof MberVO)) {
+            throw new CustomAccessDeniedException("접근 권한이 없습니다.");
+        }
+        return (MberVO) principal;
+    }
+
+    /**
+     * @param targetUserId 접근하려는 사용자 ID
+     * @throws CustomAccessDeniedException - 접근 권한이 없을 경우 예외 발생
+     *
+     * 특정 사용자 ID에 대한 접근 권한 검증
+     */
+    public void verifyAccess(String targetUserId) {
+        MberVO user = getAuthenticatedUser();
+        // 관리자 권한 여부
+        boolean isAdmin = user.getAuthorList().stream()
+                .anyMatch(auth -> "ROLE_ADMIN".equals(auth.getAuthrtCd()));
+        // 본인 여부
+        boolean isOwner = user.getMbrId().equals(targetUserId);
+
+        if(!isAdmin && !isOwner) {
+            throw new CustomAccessDeniedException("접근 권한이 없습니다.");
+        }
+    }
+
+    /**
+     * @return 관리자 여부(true, false)
+     *
+     * 관리자 여부 검증
+     */
+    public boolean verifyAdmin() {
+        MberVO user = getAuthenticatedUser();
+        // 관리자 권한 여부 반환
+        return user.getAuthorList().stream()
+                .anyMatch(auth -> "ROLE_ADMIN".equals(auth.getAuthrtCd()));
+    }
+
+    /**
+     * @return 현재 로그인된 사용자 ID
+     *
+     * 로그인된 사용자 아이디 반환
+     *  - 등록자, 수정자 입력 시 사용
+     */
+    public String getCurrentUserId() {
+        String userId = null;
+        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        if(authentication != null && authentication.isAuthenticated()) {
+            Object principal = authentication.getPrincipal();
+            if(principal instanceof MberVO) {
+                userId = ((MberVO) authentication.getPrincipal()).getMbrId();
+            }
+        }
+        return userId;
+    }
+}
Add a comment
List