보안로그인 테스트 진행중
This commit is contained in:
parent
df208e65d8
commit
aeea09e63e
@ -30,6 +30,8 @@ public class MberCertLoginLogVO extends UserDefaultVO{
|
|||||||
private String loginDevice;
|
private String loginDevice;
|
||||||
private String loginDt;
|
private String loginDt;
|
||||||
|
|
||||||
|
private String secuLoginFlag;
|
||||||
|
|
||||||
|
|
||||||
public String getCertLoginId() {
|
public String getCertLoginId() {
|
||||||
return certLoginId;
|
return certLoginId;
|
||||||
@ -61,6 +63,12 @@ public class MberCertLoginLogVO extends UserDefaultVO{
|
|||||||
public void setLoginDt(String loginDt) {
|
public void setLoginDt(String loginDt) {
|
||||||
this.loginDt = loginDt;
|
this.loginDt = loginDt;
|
||||||
}
|
}
|
||||||
|
public String getSecuLoginFlag() {
|
||||||
|
return secuLoginFlag;
|
||||||
|
}
|
||||||
|
public void setSecuLoginFlag(String secuLoginFlag) {
|
||||||
|
this.secuLoginFlag = secuLoginFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -51,18 +51,18 @@ public class CertLoginLogServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO, HttpServletRequest request) throws FdlException {
|
public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO, HttpServletRequest request) throws FdlException {
|
||||||
|
|
||||||
|
|
||||||
int count = certLoginLogDAO.checkLoginIpExists(mberCertLoginLogVO);
|
// int count = certLoginLogDAO.checkLoginIpExists(mberCertLoginLogVO);
|
||||||
|
//
|
||||||
if (count > 0) {
|
// if (count > 0) {
|
||||||
// 이미 존재하면 UPDATE
|
// // 이미 존재하면 UPDATE
|
||||||
certLoginLogDAO.updateCertLoginLog(mberCertLoginLogVO);
|
// certLoginLogDAO.updateCertLoginLog(mberCertLoginLogVO);
|
||||||
} else {
|
// } else {
|
||||||
|
|
||||||
mberCertLoginLogVO.setCertLoginId(certLoginLogIdGnrService.getNextStringId());
|
mberCertLoginLogVO.setCertLoginId(certLoginLogIdGnrService.getNextStringId());
|
||||||
mberCertLoginLogVO.setLoginDevice(getDevice(request));
|
mberCertLoginLogVO.setLoginDevice(getDevice(request));
|
||||||
certLoginLogDAO.insertCertLoginLog(mberCertLoginLogVO);
|
certLoginLogDAO.insertCertLoginLog(mberCertLoginLogVO);
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getDevice(HttpServletRequest request) {
|
private String getDevice(HttpServletRequest request) {
|
||||||
|
|||||||
@ -122,7 +122,9 @@ public class CertPhoneController {
|
|||||||
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
|
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
|
||||||
}
|
}
|
||||||
mberCertPhoneVO.setFrstRegisterId(userId);
|
mberCertPhoneVO.setFrstRegisterId(userId);
|
||||||
mberCertPhoneVO.setMberId(userId);
|
if(StringUtils.isEmpty(mberCertPhoneVO.getMberId()) ) {
|
||||||
|
mberCertPhoneVO.setMberId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return ResponseEntity.ok().body(certPhoneService.updateMberCertPhone(mberCertPhoneVO));
|
return ResponseEntity.ok().body(certPhoneService.updateMberCertPhone(mberCertPhoneVO));
|
||||||
@ -142,8 +144,10 @@ public class CertPhoneController {
|
|||||||
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
|
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
|
||||||
}
|
}
|
||||||
mberCertPhoneVO.setLastUpdusrId(userId);
|
mberCertPhoneVO.setLastUpdusrId(userId);
|
||||||
mberCertPhoneVO.setMberId(userId);
|
|
||||||
|
|
||||||
|
if(StringUtils.isEmpty(mberCertPhoneVO.getMberId()) ) {
|
||||||
|
mberCertPhoneVO.setMberId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return ResponseEntity.ok().body(certPhoneService.deleteCertPhone(mberCertPhoneVO));
|
return ResponseEntity.ok().body(certPhoneService.deleteCertPhone(mberCertPhoneVO));
|
||||||
|
|||||||
@ -2951,6 +2951,10 @@ public class EgovMypageController {
|
|||||||
return "redirect:/web/user/login/login.do";
|
return "redirect:/web/user/login/login.do";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// secuLoginFlag 값을 Model에 추가
|
||||||
|
model.addAttribute("secuLoginFlag", mberCertLoginLogVO.getSecuLoginFlag());
|
||||||
|
System.out.println(mberCertLoginLogVO.getSecuLoginFlag());
|
||||||
|
|
||||||
//로그인 권한정보 불러오기
|
//로그인 권한정보 불러오기
|
||||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
@ -3023,6 +3027,9 @@ public class EgovMypageController {
|
|||||||
model.addAttribute("mberManageVO", userManageService.selectUserInfo(mberManageVO));
|
model.addAttribute("mberManageVO", userManageService.selectUserInfo(mberManageVO));
|
||||||
|
|
||||||
model.addAttribute("pageTab", "mberSecureLogin");
|
model.addAttribute("pageTab", "mberSecureLogin");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return "web/user/mberSecureLogin";
|
return "web/user/mberSecureLogin";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,11 @@
|
|||||||
, CERT_LOGIN_ID as certLoginId
|
, CERT_LOGIN_ID as certLoginId
|
||||||
, LOGIN_ID as loginId
|
, LOGIN_ID as loginId
|
||||||
, LOGIN_IP as loginIp
|
, LOGIN_IP as loginIp
|
||||||
, LOGIN_DEVICE as loginDevice
|
, CASE
|
||||||
|
WHEN LOGIN_DEVICE = 'D' THEN 'PC'
|
||||||
|
WHEN LOGIN_DEVICE IN ('M', 'T') THEN '모바일'
|
||||||
|
ELSE 'PC'
|
||||||
|
END AS loginDevice
|
||||||
, DATE_FORMAT(LOGIN_DT,'%Y-%m-%d %T') as loginDt
|
, DATE_FORMAT(LOGIN_DT,'%Y-%m-%d %T') as loginDt
|
||||||
FROM LETTNGNRLMBER_CERT_LOGIN_LOG_IP
|
FROM LETTNGNRLMBER_CERT_LOGIN_LOG_IP
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
|
|||||||
@ -41,6 +41,42 @@
|
|||||||
<script>
|
<script>
|
||||||
$(document).ready(function (){
|
$(document).ready(function (){
|
||||||
|
|
||||||
|
|
||||||
|
$(document).on('click', '#secuLoginFlag', function () {
|
||||||
|
|
||||||
|
var secuLoginFlag = "";
|
||||||
|
console.log($(this).text());
|
||||||
|
if($(this).text() == 'ON'){
|
||||||
|
secuLoginFlag = 'Y'
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
secuLoginFlag = 'N'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 디버깅용 출력
|
||||||
|
console.log(secuLoginFlag);
|
||||||
|
|
||||||
|
// 동적으로 form 생성
|
||||||
|
var form = $('<form>', {
|
||||||
|
action: '/web/user/mberSecureLogin.do', // 전송할 URL
|
||||||
|
method: 'POST' // POST 방식 설정
|
||||||
|
});
|
||||||
|
|
||||||
|
// form에 hidden input 추가
|
||||||
|
form.append($('<input>', {
|
||||||
|
type: 'hidden',
|
||||||
|
name: 'secuLoginFlag', // 서버에서 받을 파라미터 이름
|
||||||
|
value: secuLoginFlag // 전달할 값
|
||||||
|
}));
|
||||||
|
|
||||||
|
// form을 body에 추가 후 제출
|
||||||
|
$('body').append(form);
|
||||||
|
form.submit();
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
//세션에서 종료시간을 받아와서 타이머 실행함
|
//세션에서 종료시간을 받아와서 타이머 실행함
|
||||||
/* var timer = '${timer}';
|
/* var timer = '${timer}';
|
||||||
if(timer != ""){
|
if(timer != ""){
|
||||||
@ -824,6 +860,8 @@ function actionLogin() {
|
|||||||
window.open(target, 'infoPop', 'width=1110, height=700, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
window.open(target, 'infoPop', 'width=1110, height=700, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<div class="mask"></div>
|
<div class="mask"></div>
|
||||||
<c:if test="${inspYn == 'Y'}">
|
<c:if test="${inspYn == 'Y'}">
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@ -12,7 +12,10 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
// 허용 IP 등록
|
// 허용 IP 등록
|
||||||
$(".btn_allow_ip_add").click(function () {
|
$(".btn_allow_ip_add").click(function () {
|
||||||
if (confirm("현재 접속중인 IP를 접속 허용 IP로 등록하시겠습니까?")) {
|
|
||||||
|
var ip = $('#cennectIp').val();
|
||||||
|
|
||||||
|
if (confirm("현재 접속중인 IP["+ip+"]를 접속 허용 IP로 등록하시겠습니까?")) {
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
@ -21,8 +24,9 @@ $(document).ready(function(){
|
|||||||
dataType:'json',
|
dataType:'json',
|
||||||
async: false,
|
async: false,
|
||||||
success: function (returnData) {
|
success: function (returnData) {
|
||||||
|
|
||||||
if(returnData.status == 'OK'){
|
if(returnData.status == 'OK'){
|
||||||
alert("접속 허용 IP 등록이 완료되었습니다.");
|
alert("접속 허용 IP["+ip+"] 등록이 완료되었습니다.");
|
||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -61,7 +65,8 @@ $(document).ready(function(){
|
|||||||
$(this).siblings("a").removeClass("on");
|
$(this).siblings("a").removeClass("on");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다.")) {
|
// if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다.")) {
|
||||||
|
if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능합니다. 해제 시 계정정보 유출에 따른 피해가 발생할 수 있으므로 이를 권장하지 않습니다.")) {
|
||||||
$(this).removeClass("on");
|
$(this).removeClass("on");
|
||||||
$(this).siblings("a").addClass("on");
|
$(this).siblings("a").addClass("on");
|
||||||
} else {
|
} else {
|
||||||
@ -270,6 +275,19 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
findAllCertIp();
|
findAllCertIp();
|
||||||
findAllCertPhone();
|
findAllCertPhone();
|
||||||
|
|
||||||
|
|
||||||
|
console.log('${mberCertLoginLogVO.secuLoginFlag}');
|
||||||
|
var secuLoginFlag = '${mberCertLoginLogVO.secuLoginFlag}';
|
||||||
|
if(secuLoginFlag == 'Y'){
|
||||||
|
console.log('????????Y')
|
||||||
|
$('#secuOffBtn').click();
|
||||||
|
}else{
|
||||||
|
console.log('????????N')
|
||||||
|
$('#secuOnBtn').click();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function fn_phoneSave(obj){
|
function fn_phoneSave(obj){
|
||||||
@ -491,7 +509,11 @@ function fn_PDelRow(p_mbtlnum){
|
|||||||
//IP 삭제
|
//IP 삭제
|
||||||
function deleteRow(p_ip){
|
function deleteRow(p_ip){
|
||||||
|
|
||||||
|
|
||||||
|
var myIp = $('#cennectIp').val();
|
||||||
console.log('p_ip : ', p_ip);
|
console.log('p_ip : ', p_ip);
|
||||||
|
|
||||||
|
|
||||||
var params = {
|
var params = {
|
||||||
"certIp" : p_ip
|
"certIp" : p_ip
|
||||||
}
|
}
|
||||||
@ -506,6 +528,11 @@ function deleteRow(p_ip){
|
|||||||
async: false,
|
async: false,
|
||||||
success: function (returnData) {
|
success: function (returnData) {
|
||||||
if(returnData.status == 'OK'){
|
if(returnData.status == 'OK'){
|
||||||
|
if(myIp == p_ip){
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
findAllCertIp();
|
findAllCertIp();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -622,7 +649,7 @@ function linkPage(pageNo){
|
|||||||
<th>인증번호</th>
|
<th>인증번호</th>
|
||||||
<td>
|
<td>
|
||||||
<label for="" class="label">인증번호 입력</label>
|
<label for="" class="label">인증번호 입력</label>
|
||||||
<input type="text" placeholder="인증번호 4자리 입력" id="certNumber" onfocus="this.placeholder=''" onblur="this.placeholder='인증번호 4자리 입력'" class="inputLight" style="width: 200px;">
|
<input type="text" placeholder="인증번호 6자리 입력" id="certNumber" onfocus="this.placeholder=''" onblur="this.placeholder='인증번호 4자리 입력'" class="inputLight" style="width: 200px;">
|
||||||
<button type="button" id="certConfirmBtn" class="btnType btnType6" style="width:90px">확인</button>
|
<button type="button" id="certConfirmBtn" class="btnType btnType6" style="width:90px">확인</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -666,6 +693,7 @@ function linkPage(pageNo){
|
|||||||
<p class="dashboard_title">보안로그인</p>
|
<p class="dashboard_title">보안로그인</p>
|
||||||
<div class="title_box ip_add_wrap">
|
<div class="title_box ip_add_wrap">
|
||||||
<span>현재 접속중인 IP : <b><c:out value="${cennectIP }"/> <c:if test="${chkcertRegIP }"> [허용 IP] </c:if> </b></span>
|
<span>현재 접속중인 IP : <b><c:out value="${cennectIP }"/> <c:if test="${chkcertRegIP }"> [허용 IP] </c:if> </b></span>
|
||||||
|
<input type="hidden" id="cennectIp" value="<c:out value="${cennectIP }"/>"/>
|
||||||
<c:if test="${!chkcertRegIP }">
|
<c:if test="${!chkcertRegIP }">
|
||||||
<button type="button" class="btnType btnType6 btn_allow_ip_add">허용 IP 등록</button>
|
<button type="button" class="btnType btnType6 btn_allow_ip_add">허용 IP 등록</button>
|
||||||
</c:if>
|
</c:if>
|
||||||
@ -675,9 +703,10 @@ function linkPage(pageNo){
|
|||||||
<div class="set_area">
|
<div class="set_area">
|
||||||
<p class="lately_date">최근 변경일시 : <span>2024-11-01 12:49</span></p>
|
<p class="lately_date">최근 변경일시 : <span>2024-11-01 12:49</span></p>
|
||||||
|
|
||||||
|
<input type="hidden" id="secuLoginFlag" value="${secuLoginFlag}" />
|
||||||
<div class="tab_depth1 security_tab">
|
<div class="tab_depth1 security_tab">
|
||||||
<a href="#none">ON</a>
|
<a href="#none" id="secuOnBtn">ON</a>
|
||||||
<a href="#none">OFF</a>
|
<a href="#none" id="secuOffBtn">OFF</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user