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-
-
+