diff --git a/frontend/src/assets/css/layout.css b/frontend/src/assets/css/layout.css index 3108e2c..92f6862 100644 --- a/frontend/src/assets/css/layout.css +++ b/frontend/src/assets/css/layout.css @@ -114,11 +114,11 @@ body{ /*====================== .popup ======================*/ -.dimmed {width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; background: rgba(0,0,0,0.4); display: none;} +.dimmed {width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; background: rgba(0,0,0,0.2); display: none;} .dimmed.open {display: block !important;} .popup-wrap {display: none;} .popup-wrap.open {display: block !important;} -.popup {width: 390px; border-radius: 12px; background: #fff; padding: 0 30px; box-sizing: border-box; border: 1px solid rgba(197,197,197,0.36); box-shadow: 2px 2px 8px rgba(171,171,171,0.30); position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%); -moz-transform: translate(-50%,-50%); -o-transform: translate(-50%,-50%); display: none; +.popup {width: 390px; z-index: 998; border-radius: 12px; background: #fff; padding: 0 30px; box-sizing: border-box; border: 1px solid rgba(197,197,197,0.36); box-shadow: 2px 2px 8px rgba(171,171,171,0.30); position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%); -moz-transform: translate(-50%,-50%); -o-transform: translate(-50%,-50%); display: none; max-height: 90vh; overflow: auto;}/*스크린 height 100%를 벗어나는 긴 팝업의 경우 추가 class*/ .popup.open {display: block !important;} diff --git a/frontend/src/assets/js/script.js b/frontend/src/assets/js/script.js index df02551..1e96002 100644 --- a/frontend/src/assets/js/script.js +++ b/frontend/src/assets/js/script.js @@ -49,4 +49,4 @@ function userInfoToggle(){ else{ userBtn.classList.add(click); } -} \ No newline at end of file +} diff --git a/frontend/src/common/http-client.js b/frontend/src/common/http-client.js index 132816a..2366614 100644 --- a/frontend/src/common/http-client.js +++ b/frontend/src/common/http-client.js @@ -1,7 +1,4 @@ import axios from 'axios'; -import { testProp } from './config'; -import tokenSvc from '@/common/token-service'; -import { consts } from './config'; const config = { //baseURL: 'http://localhost:7070', @@ -29,19 +26,12 @@ const authInterceptor = config => { }; const tokenInterceptor = config => { - // var authToken = tokenSvc.getAuthToken(); - // console.log(this.$store); - // alert('tokenInterceptor'+authToken); - - // if(tokenSvc.getAuthorization(consts.tokenPart1) != null){ - // //config.headers.Authorization = tokenSvc.getAuthorization(consts.tokenPart1); - // //console.log("getToken : "+config.headers.Authorization); - // //config.headers.Authorization = tokenSvc.getToken(); - // } - + // console.log('http : ',sessionStorage.authToken); if(sessionStorage.authToken != null) { config.headers.Authorization = 'Bearer '+ sessionStorage.authToken; + }else if(sessionStorage.authToken == null && sessionStorage.refreshToken != null){ + config.headers.Authorization = 'Bearer '+ sessionStorage.refreshToken; } return config; @@ -59,22 +49,6 @@ const loadingLayer = (type, config) => { get: httpClient.get(url, { params: { ... }, headers: {"show-layer": "Yes"} }) // in 2nd property post: httpClient.post(url, params, { headers: {"show-layer": "Yes"} }) // 3rd property */ - - // if (config.headers['Show-Layer'] == 'Yes') { - // if (type) { - // loadOverlap.push('add'); - // } else { - // loadOverlap.pop(); - // } - - // if (loadOverlap.length > 0) { - // document.querySelector('html > body').style.overflow = 'hidden'; // 스크롤 block - // document.getElementsByClassName('loading_layer')[0].style.display = 'block'; - // } else { - // document.querySelector('html > body').style.removeProperty('overflow'); // 스크롤 allow - // document.getElementsByClassName('loading_layer')[0].style.display = 'none'; - // } - // } if(type){ document.querySelector('html > body').style.overflow = 'hidden'; // 스크롤 block document.getElementsByClassName('loadingDimmed')[0].style.display = 'block'; @@ -107,17 +81,27 @@ httpClient.interceptors.request.use(loadingLayerInterceptor); /** Adding the response interceptors */ httpClient.interceptors.response.use( response => { - loadingLayer(false, response.config); + loadingLayer(false, response.config); console.log('response status:', response.status, 'data:', response.data); + console.log('response config url :',response.config.url); + if(response.config.url == '/api/v1/bo/comm/refreshToken'){ + if(response.data.data != null && typeof response.data.data != undefined){ + sessionStorage.setItem('authToken', response.data.data); + window.location.reload(); + }else{ + delete sessionStorage.authToken; + window.top.location.href = '/login'; + } + } return response; }, error => { console.log(error); //alert(error); - delete sessionStorage.authToken; + if(error.message === 'Network Error'){ - alert('네트워크 오류가 발생했습니다. 잠시 후 다시 시도해주세요.'); - // tokenSvc.removeToken(); + alert('네트워크 오류가 발생했습니다. 잠시 후 다시 시도해주세요.'); + delete sessionStorage.authToken; window.top.location.href = '/login'; } if (error.response != undefined && error.response != null) loadingLayer(false, error.response.config); @@ -126,33 +110,31 @@ httpClient.interceptors.response.use( if (error.code === 'ECONNABORTED') { alert('서비스가 지연되고 있습니다. 잠시 후 확인하시고 다시 시도해주세요.'); return Promise.reject(error); - }else if(error.response.status == 401){ - alert('세션이 만료되었습니다.'); - // tokenSvc.removeToken(); + }else if(error.response.status == 401){ + alert('세션이 만료되었습니다.'); + delete sessionStorage.authToken; window.top.location.href = '/login'; - } else if (error.response.status == 418) { - // tokenSvc.removeToken(); - alert('세션이 만료되었습니다.'); - window.top.location.href = '/login'; - }else if (error.response.status == 500) { - if (error.response.data != null && error.response.data.message == '511 NETWORK_AUTHENTICATION_REQUIRED') { - alert('웹템플릿 IP가 브랜드포털에 등록이 필요합니다. 기술지원에 문의해주세요.'); - return Promise.reject(error); - } else { - // tokenSvc.removeToken(); - window.top.location.href = '/login'; + } else if (error.response.status == 418) { + delete sessionStorage.authToken; + if(error.config.url == '/api/v1/bo/comm/refreshToken'){ + alert('세션이 만료되었습니다.'); + delete sessionStorage.authToken; + delete sessionStorage.refreshToken; + return window.top.location.href = '/login'; + //return Promise.reject(error); } - } else if (error.response.status == 511) { - alert('웹템플릿 IP가 브랜드포털에 등록이 필요합니다. 기술지원에 문의해주세요.'); - return Promise.reject(error); - } + var params = {}; + httpClient.post('/api/v1/bo/comm/refreshToken',params); + }else if (error.response.status == 500) { + window.top.location.href = '/view/error/500'; + } // else if (error.message == 'Network Error') { // alert('네트워크 오류가 발생했습니다. 잠시 후 다시 시도해주세요.'); // return Promise.reject(error); // } - else { - // alert("else"); - console.log('response error:', error); + else { + delete sessionStorage.authToken; + console.log('response error:', error); return Promise.reject(error); } } diff --git a/frontend/src/modules/custMgt/components/AdminNmPop.vue b/frontend/src/modules/custMgt/components/AdminNmPop.vue index bf86975..f355d8e 100644 --- a/frontend/src/modules/custMgt/components/AdminNmPop.vue +++ b/frontend/src/modules/custMgt/components/AdminNmPop.vue @@ -179,11 +179,16 @@ export default { this.$refs.madangId.focus(); } }, - setAuthData() { + async setAuthData() { // 권한 옵션. - api.commAuth().then(response => { - this.authType = response.data.data.list; - }); + try { + const response = await api.commAuth(); + if(response.data.retCode == '0000'){ + this.authType = response.data.data.list; + } + }catch(err){ + + } }, formReset(){ Object.assign(this.$data, this.$options.data()); diff --git a/frontend/src/modules/custMgt/components/MemberRegPop.vue b/frontend/src/modules/custMgt/components/MemberRegPop.vue index ca89504..fec588a 100644 --- a/frontend/src/modules/custMgt/components/MemberRegPop.vue +++ b/frontend/src/modules/custMgt/components/MemberRegPop.vue @@ -158,11 +158,19 @@ export default { this.memberInsertModalClose(); this.$parent.memberDetail(this.adminId); }, - setAuthData() { + async setAuthData() { // 권한 옵션. - api.commAuth().then(response => { - this.authType = response.data.data.list; - }); + // api.commAuth().then(response => { + // this.authType = response.data.data.list; + // }); + try { + const response = await api.commAuth(); + if(response.data.retCode == '0000'){ + this.authType = response.data.data.list; + } + }catch(err){ + + } }, formReset() { var targetAdminId = this.adminId; diff --git a/frontend/src/modules/custMgt/views/MemberAdminDetail.vue b/frontend/src/modules/custMgt/views/MemberAdminDetail.vue index 6bb33db..975b35b 100644 --- a/frontend/src/modules/custMgt/views/MemberAdminDetail.vue +++ b/frontend/src/modules/custMgt/views/MemberAdminDetail.vue @@ -7,7 +7,7 @@
-
+
@@ -236,6 +236,7 @@ export default { homePageUrl: '', isActive: true, //applyTbStyle: 'cursor: default;', + oldMemo: '', }; }, props: { @@ -322,6 +323,7 @@ export default { } this.lastLoginDt = result.data.lastLoginDt; this.memo = result.data.memo; + this.oldMemo = result.data.memo; this.mdn = result.data.mdn; this.email = result.data.email; this.list = result.data.list; @@ -336,14 +338,18 @@ export default { this.$refs.commmonModal.alertModalOpen(this.row); } }, + /** 저장 */ async updateAdminInfoTotal() { this.row = {}; this.row.userId = this.adminId; this.row.sendingLimit = this.sendingLimit; this.row.lineType = this.lineType; this.row.userStat = this.userStat; - this.row.memo = this.memo; - + if(this.memo != this.oldMemo){ + this.row.memo = this.memo; + } else { + this.row.memo = ''; + } try { const response = await custMgtApi.updateAdminInfoTotal(this.row); const result = response.data; @@ -371,6 +377,7 @@ export default { toComplete() { this.$router.push({ name: 'memberList', params: this.row }); }, + excelPopOpen() { if (this.userTotalCnt >= 100) { // 사용자등록제한_최대100개까지 @@ -431,11 +438,19 @@ export default { this.$refs.commmonModal.alertModalOpen(this.row); } }, - setAuthData() { + async setAuthData() { // 권한 옵션. - api.commAuth().then((response) => { - this.authType = response.data.data.list; - }); + // api.commAuth().then((response) => { + // this.authType = response.data.data.list; + // }); + try { + const response = await api.commAuth(); + if(response.data.retCode == '0000'){ + this.authType = response.data.data.list; + } + }catch(err){ + + } }, formReset() { Object.assign(this.$data, this.$options.data()); diff --git a/frontend/src/modules/custMgt/views/SubsDetail.vue b/frontend/src/modules/custMgt/views/SubsDetail.vue index d295f29..662428c 100644 --- a/frontend/src/modules/custMgt/views/SubsDetail.vue +++ b/frontend/src/modules/custMgt/views/SubsDetail.vue @@ -270,7 +270,8 @@ export default { }, async subsDetail(serviceId) { this.row.serviceId = serviceId; - try { + + try { const response = await custMgtApi.subsDetail(this.row); const result = response.data; if (result != null && result.retCode == "0000") { diff --git a/frontend/src/modules/login/views/LoginAuth.vue b/frontend/src/modules/login/views/LoginAuth.vue index 6d09150..46c1d77 100644 --- a/frontend/src/modules/login/views/LoginAuth.vue +++ b/frontend/src/modules/login/views/LoginAuth.vue @@ -327,6 +327,7 @@ export default { vm.$store.commit("login/saveAuthToken", rsp.data.authToken); //localStorage.authToken = rsp.data.authToken; sessionStorage.setItem('authToken', rsp.data.authToken); + sessionStorage.setItem('refreshToken', rsp.data.refreshToken); //api.setToken(rsp.data.authToken); vm.$router.push({ path: rootUrl}); }else if (rsp.retCode == '4008'){ diff --git a/frontend/src/modules/sysMgt/components/AdminDetailPop.vue b/frontend/src/modules/sysMgt/components/AdminDetailPop.vue index e063d5a..297f090 100644 --- a/frontend/src/modules/sysMgt/components/AdminDetailPop.vue +++ b/frontend/src/modules/sysMgt/components/AdminDetailPop.vue @@ -257,11 +257,19 @@ export default { } } }, - setAuthData() { + async setAuthData() { // 권한 옵션. - api.commAuth().then(response => { - this.authType = response.data.data.list; - }); + // api.commAuth().then(response => { + // this.authType = response.data.data.list; + // }); + try { + const response = await api.commAuth(); + if(response.data.retCode == '0000'){ + this.authType = response.data.data.list; + } + }catch(err){ + + } }, formReset() { var type = this.insertType; diff --git a/frontend/src/modules/sysMgt/components/AdminRegPop.vue b/frontend/src/modules/sysMgt/components/AdminRegPop.vue index 95ea8e1..82e9cc4 100644 --- a/frontend/src/modules/sysMgt/components/AdminRegPop.vue +++ b/frontend/src/modules/sysMgt/components/AdminRegPop.vue @@ -365,11 +365,19 @@ export default { } } }, - setAuthData() { + async setAuthData() { // 권한 옵션. - api.commAuth().then(response => { - this.authType = response.data.data.list; - }); + // api.commAuth().then(response => { + // this.authType = response.data.data.list; + // }); + try { + const response = await api.commAuth(); + if(response.data.retCode == '0000'){ + this.authType = response.data.data.list; + } + }catch(err){ + + } }, formReset() { var type = this.insertType; diff --git a/frontend/src/modules/sysMgt/views/AdminList.vue b/frontend/src/modules/sysMgt/views/AdminList.vue index 635aa89..c791054 100644 --- a/frontend/src/modules/sysMgt/views/AdminList.vue +++ b/frontend/src/modules/sysMgt/views/AdminList.vue @@ -223,15 +223,23 @@ export default { const getCondition = this.$store.getters['searchcondition/getSearchCondition']; }, - setCodeData() { + async setCodeData() { // 상태 옵션 셋팅. api.commCode({'grpCd': 'ADM_STTUS_CD'}).then(response => { - this.statType = response.data.data.list; - }); - api.commAuth().then(response => { - this.authType = response.data.data.list; + this.statType = response.data.dat.a.list; }); + // api.commAuth().then(response => { + // this.authType = response.data.data.list; + // }); + try { + const response = await api.commAuth(); + if(response.data.retCode == '0000'){ + this.authType = response.data.datalist; + } + }catch(err){ + + } }, rowDelete() { if (this.doValidate()) { diff --git a/frontend/src/modules/sysMgt/views/AuthList.vue b/frontend/src/modules/sysMgt/views/AuthList.vue index 0fda799..6924c84 100644 --- a/frontend/src/modules/sysMgt/views/AuthList.vue +++ b/frontend/src/modules/sysMgt/views/AuthList.vue @@ -92,9 +92,9 @@ export default { this.$refs.commmonModal.alertModalOpen(this.row); } } catch (err) { - this.row.title = '권한 관리'; - this.row.msg1 = '실패 하였습니다.' - this.$refs.commmonModal.alertModalOpen(this.row); + // this.row.title = '권한 관리'; + // this.row.msg1 = '실패 하였습니다.' + // this.$refs.commmonModal.alertModalOpen(this.row); } }, insertAuth() { @@ -128,10 +128,10 @@ export default { this.$refs.commmonModal.alertModalOpen(this.row); } } catch (err) { - this.row = {} - this.row.title = '권한 관리'; - this.row.msg1 = '실패 하였습니다.'; - this.$refs.commmonModal.alertModalOpen(this.row); + // this.row = {} + // this.row.title = '권한 관리'; + // this.row.msg1 = '실패 하였습니다.'; + // this.$refs.commmonModal.alertModalOpen(this.row); } }, confirmCalbackFnc(props) { diff --git a/frontend/src/router.js b/frontend/src/router.js index 5999e84..ba931a4 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -67,7 +67,7 @@ const router = new Router({ router.beforeEach((to, from, next) => { const isPublic = to.matched.some(record => record.meta.public); const loggedIn = !!tokenSvc.getToken(); - if (!isPublic && !loggedIn) { + if (!isPublic && !loggedIn) { return next('/login'); }else{ var nextUrl = to.fullPath; diff --git a/src/main/java/kr/co/uplus/ez/api/comm/CommService.java b/src/main/java/kr/co/uplus/ez/api/comm/CommService.java index 5d8345b..8b848f0 100644 --- a/src/main/java/kr/co/uplus/ez/api/comm/CommService.java +++ b/src/main/java/kr/co/uplus/ez/api/comm/CommService.java @@ -10,6 +10,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import kr.co.uplus.ez.api.comm.dto.Auth; @@ -24,6 +26,7 @@ import kr.co.uplus.ez.api.comm.dto.MenuResDto; import kr.co.uplus.ez.api.comm.dto.RefreshTokenReqDto; import kr.co.uplus.ez.api.comm.dto.RefreshTokenResDto; import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.jwt.JwtService; import kr.co.uplus.ez.common.utils.SpringUtils; @Service @@ -39,6 +42,9 @@ public class CommService { @Qualifier("sqlSessionTemplateDb2") private SqlSessionTemplate sqlSessionSlave; + @Autowired + private JwtService jwtSvc; + /** * date : 2022. 4. 26. * auth : ckr @@ -106,16 +112,15 @@ public class CommService { * @return RefreshTokenResDto */ public RefreshTokenResDto refreshToken(RefreshTokenReqDto refreshTokenReqDto) { - - // 1. 리프레시 토큰 조회. - - // 2. AuthToken 생성. - - // 3. 응답. - - - - RefreshTokenResDto result = new RefreshTokenResDto(ApiResponseCode.SUCCESS); + // 1. AuthToken 생성. + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + if(auth != null) { + String authToken = jwtSvc.generatePrivateToken(auth); + // 2. 응답. + return new RefreshTokenResDto(ApiResponseCode.SUCCESS, authToken); + } + // 2. 응답. + RefreshTokenResDto result = new RefreshTokenResDto(ApiResponseCode.SUCCESS, null); return result; } diff --git a/src/main/java/kr/co/uplus/ez/api/comm/dto/RefreshTokenResDto.java b/src/main/java/kr/co/uplus/ez/api/comm/dto/RefreshTokenResDto.java index 6e4c1ce..c2b2f58 100644 --- a/src/main/java/kr/co/uplus/ez/api/comm/dto/RefreshTokenResDto.java +++ b/src/main/java/kr/co/uplus/ez/api/comm/dto/RefreshTokenResDto.java @@ -12,7 +12,7 @@ import lombok.Data; public class RefreshTokenResDto extends ResponseMessage implements Serializable{ @ApiModelProperty(example = "데이터") - private RefreshToken data; + private String data; public RefreshTokenResDto() { this.retCode = ApiResponseCode.SUCCESS.getResultCode(); @@ -24,7 +24,7 @@ public class RefreshTokenResDto extends ResponseMessage implements Serializable{ this.retMsg = returnStr.getResultMsg(); } - public RefreshTokenResDto(ApiResponseCode returnStr, RefreshToken data) { + public RefreshTokenResDto(ApiResponseCode returnStr, String data) { this.retCode = returnStr.getResultCode(); this.retMsg = returnStr.getResultMsg(); this.data = data; diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java index 2954472..f2c7b60 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java @@ -921,7 +921,9 @@ public class CustMgtService { custMgtMapper.updateAdminInfoTotal(updateAdminInfoTotalReqDto); // 2. 메모정보 insert - custMgtMapper.insertMemo(updateAdminInfoTotalReqDto); + if(StringUtils.isNotEmpty(updateAdminInfoTotalReqDto.getMemo())) { + custMgtMapper.insertMemo(updateAdminInfoTotalReqDto); + } // 3. 발송 한도 update if (updateAdminInfoTotalReqDto.getSendingLimit() != null) { diff --git a/src/main/java/kr/co/uplus/ez/api/login/LoginController.java b/src/main/java/kr/co/uplus/ez/api/login/LoginController.java index eafc100..4ce2d7b 100644 --- a/src/main/java/kr/co/uplus/ez/api/login/LoginController.java +++ b/src/main/java/kr/co/uplus/ez/api/login/LoginController.java @@ -144,8 +144,9 @@ public class LoginController { loginSuccessHandler.process(request, response, authentication); // Auth 토큰 생성 - String authToken = jwtSvc.generatePrivateToken(response, authentication); -// jwtSvc.generatePrivateToken(response, authentication); + String authToken = jwtSvc.generatePrivateToken(authentication); + // Create RefreshToken + String refreshToken = jwtSvc.refreshToken(authentication); String nextUrl = getReturnUrl(request, response); logger.debug("login SUCCESS - nextUrl = [{}]", nextUrl); @@ -169,8 +170,6 @@ public class LoginController { menuUrls.add(menuUrl); } } - //String menuUrl = rootMenu.getChildren().get(j).getMenuUrl(); -// menuUrls.add(menuUrl); } LoginRes loginRes = new LoginRes(rootUrl); @@ -178,6 +177,7 @@ public class LoginController { loginRes.setUserNm(authUser.getOprtrNm()); loginRes.setMenuUrls(menuUrls); loginRes.setAuthToken(authToken); + loginRes.setRefreshToken(refreshToken); ChkAuthNumResDto result = new ChkAuthNumResDto(ApiResponseCode.SUCCESS, loginRes); return result; @@ -192,8 +192,9 @@ public class LoginController { rCode = loginSuccessHandler.process(request, response, authentication); // loginToken - String authToken = jwtSvc.generatePrivateToken(response, authentication); -// jwtSvc.generatePrivateToken(response, authentication); + String authToken = jwtSvc.generatePrivateToken(authentication); + // Create RefreshToken + String refreshToken = jwtSvc.refreshToken(authentication); String nextUrl = getReturnUrl(request, response); logger.debug("login SUCCESS - nextUrl = [{}]", nextUrl); @@ -224,6 +225,8 @@ public class LoginController { loginRes.setUserId(authUser.getOprtrId()); loginRes.setUserNm(authUser.getOprtrNm()); loginRes.setAuthToken(authToken); + loginRes.setRefreshToken(refreshToken); + loginRes.setMenuUrls(menuUrls); ChkAuthNumResDto result = new ChkAuthNumResDto(rCode, loginRes); diff --git a/src/main/java/kr/co/uplus/ez/api/login/dto/LoginRes.java b/src/main/java/kr/co/uplus/ez/api/login/dto/LoginRes.java index 080ebb5..8f80521 100644 --- a/src/main/java/kr/co/uplus/ez/api/login/dto/LoginRes.java +++ b/src/main/java/kr/co/uplus/ez/api/login/dto/LoginRes.java @@ -20,9 +20,15 @@ public class LoginRes implements Serializable { private String userNm; /** 접근 토큰*/ + @ApiModelProperty(hidden = true) private String accessToken; /** 권한 토큰*/ - private String authToken; + @ApiModelProperty(hidden = true) + private String authToken; + /** 리프레쉬 토큰*/ + @ApiModelProperty(hidden = true) + private String refreshToken; + /** 메뉴 url*/ private ArrayList menuUrls; diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java index 262c5b4..f9daaf1 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java @@ -11,6 +11,9 @@ import io.swagger.annotations.ApiResponses; import kr.co.uplus.ez.api.sysMgt.dto.*; import kr.co.uplus.ez.common.components.ValidComponents; import kr.co.uplus.ez.common.data.ApiResponseCode; + +import org.apache.http.HttpStatus; +import org.apache.http.protocol.HTTP; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -51,12 +54,12 @@ public class SysMgtController { @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) @RequestMapping(value = "adminList", method = { RequestMethod.POST }) @ResponseBody - public AdminListResDto adminList(@RequestBody @Valid AdminListReqDto adminListReqDto, BindingResult bindingResult) { + public AdminListResDto adminList(@RequestBody @Valid AdminListReqDto adminListReqDto, BindingResult bindingResult, HttpServletResponse response) { if (validComponents.validParameter(bindingResult)) { return new AdminListResDto(ApiResponseCode.CM_PARAMETER_ERROR); } - + return sysService.adminList(adminListReqDto); } diff --git a/src/main/java/kr/co/uplus/ez/common/jwt/JwtService.java b/src/main/java/kr/co/uplus/ez/common/jwt/JwtService.java index 335ce73..f2ad87d 100644 --- a/src/main/java/kr/co/uplus/ez/common/jwt/JwtService.java +++ b/src/main/java/kr/co/uplus/ez/common/jwt/JwtService.java @@ -35,7 +35,7 @@ public class JwtService { @Qualifier("sqlSessionTemplateDb2") private SqlSessionTemplate sqlSessionSlave; - public String generatePrivateToken(HttpServletResponse response, Authentication auth) { + public String generatePrivateToken(Authentication auth) { Claims claims = coreClaims(auth, jwtProps.getPrivateTokenExpiration()); // 필요하면 다른 정보 추가 @@ -179,7 +179,7 @@ public class JwtService { return generateToken(claims); } - private String refreshToken(Authentication auth) { + public String refreshToken(Authentication auth) { Claims claims = coreClaims(auth, jwtProps.getRefreshTokenExpiration()); return generateToken(claims); } diff --git a/src/main/java/kr/co/uplus/ez/config/SecurityConfig.java b/src/main/java/kr/co/uplus/ez/config/SecurityConfig.java index 2cc7658..c634984 100644 --- a/src/main/java/kr/co/uplus/ez/config/SecurityConfig.java +++ b/src/main/java/kr/co/uplus/ez/config/SecurityConfig.java @@ -57,7 +57,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/v3/api-docs", "/v3/api-docs/**", "/", - "/socket/**" + "/socket/**", + "/api/v1/bo/sendNumMgt/filedownload" }; private static final String[] AUTH_URL_ARRAY = { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c7f4fe1..386cb22 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -23,8 +23,8 @@ app.props: private-token-expiration: 1800 part1: JwtPart1 part2: JwtPart2 - access-token-expiration: 180 - refresh-token-expiration: 1800 + access-token-expiration: 600 + refresh-token-expiration: 5400 header: Authorization prefix: "Bearer " diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 3db1e04..840eef7 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -28,10 +28,10 @@ See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing- - - - - + + + + @@ -51,7 +51,6 @@ See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing- - @@ -61,7 +60,7 @@ See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing- - +