Merge branch 'tolag3'
This commit is contained in:
commit
4f5d92adf7
@ -16,7 +16,9 @@
|
||||
package kcc.com.cmm.util;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.URLEncoder;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@ -111,4 +113,37 @@ public class IpUtil {
|
||||
return ozServerNm;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static String getClientIPv4(HttpServletRequest request) {
|
||||
String userip = request.getHeader("X-Forwarded-For"); // 아파치 아래에 웹로직이 있을경우 아이피 가져오기
|
||||
|
||||
if (userip == null || "".equals(userip)) { // 아이피 가져오기 , 바로 웹로직이 있을경우
|
||||
userip = request.getRemoteAddr();
|
||||
}
|
||||
|
||||
if (userip == null || "".equals(userip)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 여러 IP가 있을 경우 첫 번째 IP 사용
|
||||
String[] userips = userip.split(",");
|
||||
userip = userips[0].trim();
|
||||
|
||||
// IPv6 주소인 경우 IPv4로 변환 시도
|
||||
try {
|
||||
InetAddress inetAddress = InetAddress.getByName(userip);
|
||||
if (inetAddress instanceof java.net.Inet6Address) {
|
||||
byte[] ipv4Bytes = new byte[4];
|
||||
System.arraycopy(inetAddress.getAddress(), 12, ipv4Bytes, 0, 4);
|
||||
InetAddress ipv4Address = InetAddress.getByAddress(ipv4Bytes);
|
||||
return ipv4Address.getHostAddress();
|
||||
}
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace(); // 예외 발생 시 로그 출력
|
||||
}
|
||||
|
||||
// IPv4 주소라면 그대로 반환
|
||||
return userip;
|
||||
}
|
||||
}
|
||||
@ -39,6 +39,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.ComDefaultVO;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.util.IpUtil;
|
||||
import kcc.com.cmm.util.RedirectUrlMaker;
|
||||
import kcc.com.uss.ion.bnr.service.BannerVO;
|
||||
import kcc.com.uss.ion.bnr.service.EgovBannerService;
|
||||
@ -197,14 +198,14 @@ public class EgovMainController {
|
||||
// model.addAttribute("uniqId", user.getUniqId());
|
||||
|
||||
//이전접속정보
|
||||
// LoginLog loginLog = new LoginLog();
|
||||
// loginLog.setConectId(user.getUniqId());
|
||||
// loginLog = loginLogService.selectBeforeAmdinLog(loginLog); //이전접속 시간
|
||||
// if(loginLog !=null) {
|
||||
// model.addAttribute("beforeLoginDate", loginLog.getCreatDt());
|
||||
// }else {
|
||||
// model.addAttribute("beforeLoginDate", "");
|
||||
// }
|
||||
LoginLog loginLog = new LoginLog();
|
||||
loginLog.setConectId(user.getUniqId());
|
||||
loginLog = loginLogService.selectBeforeAmdinLog(loginLog); //이전접속 시간
|
||||
if(loginLog !=null) {
|
||||
model.addAttribute("beforeLoginDate", loginLog.getCreatDt());
|
||||
}else {
|
||||
model.addAttribute("beforeLoginDate", "");
|
||||
}
|
||||
}else{
|
||||
//model.addAttribute("list_headmenu", menuManageService.selectMainMenuHeadAnonymous(menuManageVO));
|
||||
//model.addAttribute("list_menulist", menuManageService.selectMainMenuLeftAnonymous(menuManageVO));
|
||||
@ -246,6 +247,8 @@ public class EgovMainController {
|
||||
model.addAttribute("memDept", memberDept);
|
||||
model.addAttribute("enaDept", memberJoinService.deptList(commandMap));
|
||||
|
||||
model.addAttribute("IP", IpUtil.getClientIPv4(req));
|
||||
|
||||
return "main/inc/EgovIncTopnav"; // 내부업무의 상단메뉴 화면
|
||||
}
|
||||
|
||||
@ -526,26 +529,26 @@ public class EgovMainController {
|
||||
@RequestParam Map<String, Object> commandMap ,ModelMap model)
|
||||
throws Exception {
|
||||
|
||||
// SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA );
|
||||
// Date currentTime = new Date ();
|
||||
// String mTime = mSimpleDateFormat.format ( currentTime );
|
||||
// HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
|
||||
// String ip = req.getHeader("X-FORWARDED-FOR");
|
||||
// if (ip == null){ ip = req.getRemoteAddr();}
|
||||
// LoginLog loginLog = new LoginLog();
|
||||
// loginLog.setLoginIp(ip);
|
||||
// loginLog.setCreatDt(mTime);
|
||||
// loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O
|
||||
// loginLog.setErrOccrrAt("N");
|
||||
// loginLog.setErrorCode("");
|
||||
// loginLog.setUserAt("A"); //관리자
|
||||
// loginLog.setLoginId(""); //connnect_id
|
||||
// loginLog.setUrl(req.getRequestURI());
|
||||
// if(EgovUserDetailsHelper.isAuthenticated()){
|
||||
// LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
// loginLog.setLoginId(user.getUniqId());
|
||||
// }
|
||||
//loginLogService.logInsertAdminLoginLog(loginLog);
|
||||
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyyMMdd", Locale.KOREA );
|
||||
Date currentTime = new Date ();
|
||||
String mTime = mSimpleDateFormat.format ( currentTime );
|
||||
HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
|
||||
String ip = req.getHeader("X-FORWARDED-FOR");
|
||||
if (ip == null){ ip = req.getRemoteAddr();}
|
||||
LoginLog loginLog = new LoginLog();
|
||||
loginLog.setLoginIp(ip);
|
||||
loginLog.setCreatDt(mTime);
|
||||
loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O
|
||||
loginLog.setErrOccrrAt("N");
|
||||
loginLog.setErrorCode("");
|
||||
loginLog.setUserAt("A"); //관리자
|
||||
loginLog.setLoginId(""); //connnect_id
|
||||
loginLog.setUrl(req.getRequestURI());
|
||||
if(EgovUserDetailsHelper.isAuthenticated()){
|
||||
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
loginLog.setLoginId(user.getUniqId());
|
||||
}
|
||||
loginLogService.logInsertAdminLoginLog(loginLog);
|
||||
|
||||
return "main/inc/EgovIncFooter"; // 내부업무의 상단메뉴 화면
|
||||
}
|
||||
|
||||
@ -2187,7 +2187,7 @@
|
||||
<bean name="AdminLogStrategy"
|
||||
class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
|
||||
<property name="prefix" value="ADMINLOG_" />
|
||||
<property name="cipers" value="16" />
|
||||
<property name="cipers" value="11" />
|
||||
<property name="fillChar" value="0" />
|
||||
</bean>
|
||||
|
||||
@ -2205,7 +2205,7 @@
|
||||
<bean name="FmsFileStrategy"
|
||||
class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
|
||||
<property name="prefix" value="FMSID_" />
|
||||
<property name="cipers" value="10" />
|
||||
<property name="cipers" value="14" />
|
||||
<property name="fillChar" value="0" />
|
||||
</bean>
|
||||
|
||||
@ -2235,7 +2235,7 @@
|
||||
<bean name="ComIpStrategy"
|
||||
class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
|
||||
<property name="prefix" value="COMIP_" />
|
||||
<property name="cipers" value="10" />
|
||||
<property name="cipers" value="14" />
|
||||
<property name="fillChar" value="0" />
|
||||
</bean>
|
||||
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
|
||||
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
|
||||
|
||||
<sqlMapConfig>
|
||||
<sqlMap resource="egovframework/sqlmap/let/sym/log/clg/EgovLoginLog_SQL_Oracle.xml"/>
|
||||
</sqlMapConfig>
|
||||
@ -226,10 +226,9 @@
|
||||
,#deviceType#
|
||||
</isNotEmpty>
|
||||
,
|
||||
( SELECT A.PROGRM_FILE_NM FROM LETTNPROGRMLIST A WHERE A.URL = #url# LIMIT 1 )
|
||||
,(
|
||||
SELECT B.MENU_NM FROM LETTNPROGRMLIST A INNER JOIN LETTNMENUINFO B
|
||||
WHERE A.PROGRM_FILE_NM = B.PROGRM_FILE_NM AND A.URL = #url# LIMIT 1 )
|
||||
<![CDATA[( SELECT NVL(A.PROGRM_FILE_NM, #url#) FROM LETTNPROGRMLIST A WHERE A.URL = #url# and rownum <= 1 )]]>
|
||||
,<![CDATA[(
|
||||
SELECT NVL(B.MENU_NM, #url#) FROM LETTNPROGRMLIST A INNER JOIN LETTNMENUINFO B ON A.PROGRM_FILE_NM = B.PROGRM_FILE_NM WHERE A.URL = #url# and rownum <= 1 )]]>
|
||||
, SYSDATE)
|
||||
</insert>
|
||||
|
||||
@ -605,16 +604,35 @@
|
||||
|
||||
<!-- 이전 관리자 로그인 로그 상세 조회 -->
|
||||
<select id="LoginLogDAO.selectBeforeAmdinLog" parameterClass="loginLog" resultClass="loginLog">
|
||||
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectBeforeAmdinLog */
|
||||
/*
|
||||
SELECT DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d %H:%i' ) creatDt FROM LETTNADMINLOG A
|
||||
SELECT
|
||||
COALESCE(TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD HH24:MI'), TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI')) AS CREATDT
|
||||
FROM
|
||||
(SELECT
|
||||
A.CREAT_DT
|
||||
FROM
|
||||
LETTNADMINLOG A
|
||||
WHERE
|
||||
A.CONECT_ID = #conectId#
|
||||
AND A.PROGRM_FILE_NM = 'selectActionSecurityLogin'
|
||||
ORDER BY
|
||||
A.CREAT_DT DESC) A
|
||||
WHERE
|
||||
ROWNUM = 1
|
||||
|
||||
*/
|
||||
SELECT TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD HH24:MI' ) creatDt FROM LETTNADMINLOG A
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI') AS CREATDT
|
||||
FROM
|
||||
DUAL
|
||||
WHERE
|
||||
NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM LETTNADMINLOG A
|
||||
WHERE A.CONECT_ID = #conectId#
|
||||
AND A.PROGRM_FILE_NM = 'selectActionSecurityLogin'
|
||||
ORDER BY A.CREAT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
@ -2,24 +2,40 @@
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
|
||||
<!DOCTYPE html>
|
||||
<html lang="kr">
|
||||
<html lang="ko">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
|
||||
<%-- 전자조정 --%>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>관리자페이지</title>
|
||||
|
||||
|
||||
<!-- 분쟁조정 -->
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="/kofair_case_seed/css/reset.css">
|
||||
<link rel="stylesheet" href="/kofair_case_seed/css/font.css">
|
||||
<link rel="stylesheet" href="/kofair_case_seed/adm/style/layout.css">
|
||||
<link rel="stylesheet" href="/kofair_case_seed/adm/style/common.css">
|
||||
|
||||
<!-- script -->
|
||||
<script src="/kofair_case_seed/script/lib/jquery-3.5.0.js"></script>
|
||||
<script src="/kofair_case_seed/adm/scripts/common.js"></script>
|
||||
<script src="/kofair_case_seed/adm/scripts/layout.js"></script>
|
||||
<!-- 분쟁조정 끝 -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/reset.css">
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/font.css">
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/common.css">
|
||||
<!-- <link rel="stylesheet" href="/kccadrPb/adm/css/reset.css"> -->
|
||||
<!-- <link rel="stylesheet" href="/kccadrPb/adm/css/font.css"> -->
|
||||
<!-- <link rel="stylesheet" href="/kccadrPb/adm/css/common.css"> -->
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/content.css">
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/content_media.css">
|
||||
|
||||
<!-- script -->
|
||||
<script src="/kccadrPb/adm/script/jquery-3.5.0.js"></script>
|
||||
<script src="/kccadrPb/adm/script/common.js"></script>
|
||||
<!-- <script src="/kccadrPb/adm/script/jquery-3.5.0.js"></script> -->
|
||||
<!-- <script src="/kccadrPb/adm/script/common.js"></script> -->
|
||||
<script src="/kccadrPb/adm/script/content.js"></script>
|
||||
|
||||
<script src="<c:url value='/js/ncms_common.js' />"></script><%-- 전자조정 --%>
|
||||
@ -34,18 +50,16 @@
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<%-- 전자조정 --%>
|
||||
<decorator:head />
|
||||
<c:import url="/EgovPageLink.do?link=blank" />
|
||||
<div class="wrap">
|
||||
<%-- <c:import url="/EgovPageLink.do?link=blank" /> --%>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
<c:import url="/sym/mms/EgovMainMenuLeft.do" />
|
||||
<!-- top_utill+cont -->
|
||||
<div class="area_right">
|
||||
<div class="contents">
|
||||
<c:import url="/sym/mms/EgovMainMenuHead.do" />
|
||||
<decorator:body />
|
||||
</div>
|
||||
<!-- //top_utill+cont -->
|
||||
</div>
|
||||
<c:import url="/sym/mms/EgovMainFooter.do" />
|
||||
</div>
|
||||
<c:import url="/sym/mms/EgovMainFooter.do" />
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@ -40,30 +40,31 @@ $( document).ready(function() {
|
||||
location.href = "/EgovTopPageLink.do?link="+baseMenuUrl+"&baseMenuNo="+base;
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- leftmenu -->
|
||||
<div class="area_left">
|
||||
<h1 class="logo">
|
||||
<a href="/cmm/main/mainPage.do">
|
||||
<!-- <img src="/kccadrPb/adm/image/common/logo.png" alt="한국저작권위원회 KOREA COPYRIGHT COMMISSION"> -->
|
||||
</a>
|
||||
</h1>
|
||||
<div class="leftmenu">
|
||||
<h1 class="logo"><a href="/cmm/main/mainPage.do"><img src="/kofair_case_seed/adm/images/layout/logo.png" alt="FAIR 한국공정거래조정원 분쟁조정사건처리시스템"></a></h1>
|
||||
<nav class="menu">
|
||||
<ul>
|
||||
<ul class="menu_ul">
|
||||
<c:forEach var="result" items="${list_headmenu}" varStatus="status">
|
||||
<li class="depth01">
|
||||
<button class="menu_tit" title="하위메뉴 열기">
|
||||
<li class="depth01_li">
|
||||
<!-- depth01 -->
|
||||
<button type="button" class="menu_title">
|
||||
<i class="icon menu_icon site"></i>
|
||||
<c:out value="${result.menuNm}" />
|
||||
</button>
|
||||
<ul class="depth02">
|
||||
<!-- //depth01 -->
|
||||
<!-- depth02 -->
|
||||
<ul class="depth02_ul">
|
||||
<c:forEach var="resultSub" items="${list_menulist}" varStatus="statusSub">
|
||||
<c:if test="${result.menuNo eq resultSub.upperMenuId}">
|
||||
<li id="top_href_${resultSub.menuNo}" value='${resultSub.menuNm}'
|
||||
onclick="javascript:goMenuPage('<c:out value="${resultSub.menuNo}"/>', '${resultSub.chkURL}')">
|
||||
<a href="#"><c:out value="${resultSub.menuNm}" /></a>
|
||||
<li class="depth02_li" id="top_href_${resultSub.menuNo}" value='${resultSub.menuNm}' onclick="javascript:goMenuPage('<c:out value="${resultSub.menuNo}"/>', '${resultSub.chkURL}')">
|
||||
<a href="#none"><c:out value="${resultSub.menuNm}" /></a>
|
||||
</li>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
<!-- //depth02 -->
|
||||
</li>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
|
||||
@ -52,26 +52,6 @@ function sessionExpend(){
|
||||
});
|
||||
SetTime = 60*${sessionTime};
|
||||
}
|
||||
function modifyMem(uniqId){
|
||||
|
||||
|
||||
var form = document.createElement("form");
|
||||
// form.setAttribute("charset", "UTF-8");
|
||||
form.setAttribute("method", "get"); //get 방식
|
||||
form.setAttribute("action", "/uss/umt/user/EgovUserSelectUpdtView.do"); //요청 보낼 주소
|
||||
|
||||
var hiddenField = document.createElement("input");
|
||||
hiddenField.setAttribute("type", "hidden");
|
||||
hiddenField.setAttribute("name", "selectedId");
|
||||
hiddenField.setAttribute("value", uniqId);
|
||||
form.appendChild(hiddenField);
|
||||
|
||||
document.body.appendChild(form);
|
||||
|
||||
form.submit();
|
||||
|
||||
}
|
||||
|
||||
|
||||
function fn_change_dept(val) {
|
||||
var param = {changeDept:val};
|
||||
@ -146,8 +126,68 @@ function TopnavXHR(url, data, callbackFunc, exceptionFunc , localStartFunc , loc
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<!-- top_utill -->
|
||||
<div class="top_util">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- user_info -->
|
||||
<div class="user_info">
|
||||
<ul class="user_util_ul">
|
||||
<li>
|
||||
<i class="icon time"></i>
|
||||
<!-- 최종접속일시 : 2024-07-08 14:51 -->
|
||||
최종접속일시 : <c:out value="${beforeLoginDate}"/>
|
||||
</li>
|
||||
<li>
|
||||
<i class="icon ip"></i>
|
||||
IP : <c:out value="${IP}"/>
|
||||
</li>
|
||||
<li>
|
||||
<i class="icon timeout"></i>
|
||||
로그인 타임아웃 : <span class="color_orange fw_bold" id="ViewTimer"></span>
|
||||
<button type="button" class="btn btn_text orange_border light_orange_fill btn_extension" onclick="sessionExpend(); return false;">
|
||||
연장
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="area_right">
|
||||
<ul class="user_info_ul">
|
||||
<li>
|
||||
<select onchange="fn_change_dept(this.value)">
|
||||
<c:forEach var="ed" items="${enaDept}" varStatus="stss">
|
||||
<option value="${ed.CODE_IDXS}" <c:if test="${ed.CODE_IDXS eq memDept}">selected="selected"</c:if>>${ed.CODE_NAME}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</li>
|
||||
<li>
|
||||
<i class="icon user"></i>
|
||||
<c:out value="${LoginVO.name}" />
|
||||
(<c:out value="${LoginVO.id}" />)
|
||||
</li>
|
||||
</ul>
|
||||
<button type="button" class="btn btn_text gray_fill btn_logout" onclick="location.href='/uat/uia/actionLogout.do'">로그아웃</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //user_info -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<%-- <div class="top_util">
|
||||
<div class="user_info">
|
||||
<div class="user">
|
||||
<i></i>
|
||||
@ -171,8 +211,7 @@ function TopnavXHR(url, data, callbackFunc, exceptionFunc , localStartFunc , loc
|
||||
<p>로그인 타임아웃 : </p><span id="ViewTimer"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //top_utill -->
|
||||
</div> --%>
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user