From d878f94a137920722a7e8bdc783f113e5b2cb6f6 Mon Sep 17 00:00:00 2001 From: kkw29 Date: Thu, 25 May 2023 15:27:00 +0900 Subject: [PATCH] =?UTF-8?q?JWT=20=EC=A0=80=EC=9E=A5=EC=86=8C=20Local=20Sto?= =?UTF-8?q?rage=20->=20Cookie=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/common/login/TokenProvider.java | 32 +++++++-- .../MonitoringConsultingController.java | 13 ++++ .../jsp/adm/rcp/monitoring/consulting.jsp | 4 +- main_vm/src/main/webapp/aajs/consulting.js | 70 +++++++++---------- 4 files changed, 76 insertions(+), 43 deletions(-) diff --git a/main_vm/src/main/java/com/icomsys/main_vm/biz/common/login/TokenProvider.java b/main_vm/src/main/java/com/icomsys/main_vm/biz/common/login/TokenProvider.java index b7a4bf7..0bc3ac9 100644 --- a/main_vm/src/main/java/com/icomsys/main_vm/biz/common/login/TokenProvider.java +++ b/main_vm/src/main/java/com/icomsys/main_vm/biz/common/login/TokenProvider.java @@ -11,6 +11,8 @@ import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.stereotype.Component; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; import java.security.Key; import java.util.Arrays; import java.util.Collection; @@ -21,10 +23,12 @@ import java.util.stream.Collectors; @Slf4j @Component public class TokenProvider { + private final HttpServletResponse httpServletResponse; private final Key key; - public TokenProvider(@Value("${spring.jwt.secret}") String secretKey) { + public TokenProvider(@Value("${spring.jwt.secret}") String secretKey, HttpServletResponse httpServletResponse) { + this.httpServletResponse = httpServletResponse; byte[] keyBytes = Decoders.BASE64.decode(secretKey); this.key = Keys.hmacShaKeyFor(keyBytes); } @@ -52,11 +56,27 @@ public class TokenProvider { .signWith(key, SignatureAlgorithm.HS256) .compact(); - return CinnamonToken.builder() - .grantType("Bearer") - .accessToken(accessToken) - .refreshToken(refreshToken) - .build(); + CinnamonToken token = CinnamonToken.builder() + .grantType("Bearer") + .accessToken(accessToken) + .refreshToken(refreshToken) + .build(); + + // create a cookie + Cookie cookie = new Cookie("JWT", token.toString()); + + // expires in 7 days + cookie.setMaxAge(7 * 24 * 60 * 60); + + // optional properties + cookie.setSecure(true); + cookie.setHttpOnly(true); + cookie.setPath("/"); + + // add cookie to response + httpServletResponse.addCookie(cookie); + + return token; } // JWT 토큰을 복호화하여 토큰에 들어있는 정보를 꺼내는 메서드 diff --git a/main_vm/src/main/java/com/icomsys/main_vm/biz/rcp/monitoring/controller/MonitoringConsultingController.java b/main_vm/src/main/java/com/icomsys/main_vm/biz/rcp/monitoring/controller/MonitoringConsultingController.java index f3c9ac2..d91a003 100644 --- a/main_vm/src/main/java/com/icomsys/main_vm/biz/rcp/monitoring/controller/MonitoringConsultingController.java +++ b/main_vm/src/main/java/com/icomsys/main_vm/biz/rcp/monitoring/controller/MonitoringConsultingController.java @@ -23,6 +23,7 @@ import org.springframework.ui.Model; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; @@ -52,8 +53,20 @@ public class MonitoringConsultingController { private final ExcelService excelService; private final LogService logService; + private final HttpServletRequest httpServletRequest; + @GetMapping("/consulting/manage.do") public String ConsultingView(Model model){ + Cookie[] cookies = httpServletRequest.getCookies(); // 모든 쿠키 가져오기 + if(cookies != null){ + for (Cookie c : cookies) { + String name = c.getName(); // 쿠키 이름 가져오기 + String value = c.getValue(); // 쿠키 값 가져오기 + log.info("###Cookie_Name : " + name); + log.info("###Cookie_Value : " + value); + } + } + return "/adm/rcp/monitoring/consulting"; } diff --git a/main_vm/src/main/webapp/WEB-INF/jsp/adm/rcp/monitoring/consulting.jsp b/main_vm/src/main/webapp/WEB-INF/jsp/adm/rcp/monitoring/consulting.jsp index 3ff31e7..5ebbd0e 100644 --- a/main_vm/src/main/webapp/WEB-INF/jsp/adm/rcp/monitoring/consulting.jsp +++ b/main_vm/src/main/webapp/WEB-INF/jsp/adm/rcp/monitoring/consulting.jsp @@ -23,9 +23,9 @@ - +<%-- --%> diff --git a/main_vm/src/main/webapp/aajs/consulting.js b/main_vm/src/main/webapp/aajs/consulting.js index 872b569..bf00877 100644 --- a/main_vm/src/main/webapp/aajs/consulting.js +++ b/main_vm/src/main/webapp/aajs/consulting.js @@ -825,41 +825,41 @@ var Consulting = { } $(document).ready(function () { - Consulting.init(); - - $('#oprMngCode').on('change', function() { - Consulting.setSearchData(); - }); - - $('#addBookmarkBtn').on('click', function() { - var param = { - oprMngCode: $('#addOprMngCode').val(), - logType: Consulting.logTypeVal, - token: $('#tokenVal').val(), - talkSeq: Consulting.talkSeqVal, - talkText: $('#bookmarkText').text(), - bookmarkErrCode: $('#bookmarkErr').val() - } - - Consulting.addBookmark(param); - }); - - $('#removeBookmarkBtn').on('click', function() { - var param = { - oprMngCode: $('#removeOprMngCode').val(), - measureType: $('#measureType').val(), - seq: $('#seqVal').val(), - measureInfo: $('#measureInfo').val() - } - - Consulting.removeBookmark(param); - }); - - let telNo = document.getElementById('telNo'); - telNo.addEventListener('keyup', event => Consulting.fncInputEnterKey(event)); - - let dnisNo = document.getElementById('dnisNo'); - dnisNo.addEventListener('keyup', event => Consulting.fncInputEnterKey(event)); + // Consulting.init(); + // + // $('#oprMngCode').on('change', function() { + // Consulting.setSearchData(); + // }); + // + // $('#addBookmarkBtn').on('click', function() { + // var param = { + // oprMngCode: $('#addOprMngCode').val(), + // logType: Consulting.logTypeVal, + // token: $('#tokenVal').val(), + // talkSeq: Consulting.talkSeqVal, + // talkText: $('#bookmarkText').text(), + // bookmarkErrCode: $('#bookmarkErr').val() + // } + // + // Consulting.addBookmark(param); + // }); + // + // $('#removeBookmarkBtn').on('click', function() { + // var param = { + // oprMngCode: $('#removeOprMngCode').val(), + // measureType: $('#measureType').val(), + // seq: $('#seqVal').val(), + // measureInfo: $('#measureInfo').val() + // } + // + // Consulting.removeBookmark(param); + // }); + // + // let telNo = document.getElementById('telNo'); + // telNo.addEventListener('keyup', event => Consulting.fncInputEnterKey(event)); + // + // let dnisNo = document.getElementById('dnisNo'); + // dnisNo.addEventListener('keyup', event => Consulting.fncInputEnterKey(event)); }); $(document).on("click", ".addedIco", function() {