From 5d7b47fc13142fdecbbce6c721674622608b356f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Thu, 24 Feb 2022 17:29:02 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=EB=B0=A9=EB=AC=B8=EC=9E=90=20=EC=88=98=20=ED=91=9C=ED=98=84=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mca/cmmn/mapper/LogMapper.java | 12 ++++ .../java/com/mca/cmmn/service/LogService.java | 28 +++++++++ .../java/com/mca/cmmn/vo/BaseSearchVO.java | 22 +++++++ src/main/java/com/mca/cmmn/vo/LogActions.java | 16 +++++ src/main/java/com/mca/cmmn/vo/LogVO.java | 61 +++++++++++++++++++ .../com/mca/cmmn/web/AdminController.java | 16 +++++ .../java/com/mca/sec/LoginSuccessHandler.java | 58 ++++++++++++------ .../com/mca/sec/LogoutSuccessHandler.java | 22 +++++-- .../sqlmap/mappers/cmmn/logMapper.xml | 19 ++++++ .../sqlmap/sql-mapper-config.xml | 41 +++++++------ .../webapp/WEB-INF/jsp/admin/dashBoard.jsp | 4 +- src/main/webapp/css/style.css | 2 + 12 files changed, 255 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/mca/cmmn/mapper/LogMapper.java create mode 100644 src/main/java/com/mca/cmmn/service/LogService.java create mode 100644 src/main/java/com/mca/cmmn/vo/LogActions.java create mode 100644 src/main/java/com/mca/cmmn/vo/LogVO.java create mode 100644 src/main/resources/egovframework/sqlmap/mappers/cmmn/logMapper.xml diff --git a/src/main/java/com/mca/cmmn/mapper/LogMapper.java b/src/main/java/com/mca/cmmn/mapper/LogMapper.java new file mode 100644 index 0000000..f517c76 --- /dev/null +++ b/src/main/java/com/mca/cmmn/mapper/LogMapper.java @@ -0,0 +1,12 @@ +package com.mca.cmmn.mapper; + +import com.mca.cmmn.vo.BaseSearchVO; +import com.mca.cmmn.vo.LogVO; +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("logMapper") +public interface LogMapper { + void insertLog(LogVO logVO); + + int selectLoginCnt(BaseSearchVO searchVO); +} diff --git a/src/main/java/com/mca/cmmn/service/LogService.java b/src/main/java/com/mca/cmmn/service/LogService.java new file mode 100644 index 0000000..d918ec1 --- /dev/null +++ b/src/main/java/com/mca/cmmn/service/LogService.java @@ -0,0 +1,28 @@ +package com.mca.cmmn.service; + +import com.mca.cmmn.mapper.LogMapper; +import com.mca.cmmn.vo.BaseSearchVO; +import com.mca.cmmn.vo.LogVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service("logService") +public class LogService { + + @Resource(name="logMapper") + LogMapper logMapper; + + public void insertLog(LogVO logVO){ + logMapper.insertLog(logVO); + } + + public int selectLoginCnt(BaseSearchVO searchVO){ + return logMapper.selectLoginCnt(searchVO); + } + +// public LayersVO selectFacility(String layer) { +// return layersMapper.selectFacility(layer); +// } + +} diff --git a/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java b/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java index 84045c7..2878ed4 100644 --- a/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java +++ b/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java @@ -1,5 +1,7 @@ package com.mca.cmmn.vo; +import java.time.LocalDate; + public class BaseSearchVO { /** @@ -34,6 +36,9 @@ public class BaseSearchVO { /** recordCountPerPage */ private int recordCountPerPage = 10; + private String searchStartDate; + private String searchEndDate; + public String getSearchCondition() { return searchCondition; } @@ -105,4 +110,21 @@ public class BaseSearchVO { public void setRecordCountPerPage(int recordCountPerPage) { this.recordCountPerPage = recordCountPerPage; } + + + public String getSearchStartDate() { + return searchStartDate; + } + + public void setSearchStartDate(String searchStartDate) { + this.searchStartDate = searchStartDate; + } + + public String getSearchEndDate() { + return searchEndDate; + } + + public void setSearchEndDate(String searchEndDate) { + this.searchEndDate = searchEndDate; + } } diff --git a/src/main/java/com/mca/cmmn/vo/LogActions.java b/src/main/java/com/mca/cmmn/vo/LogActions.java new file mode 100644 index 0000000..e076636 --- /dev/null +++ b/src/main/java/com/mca/cmmn/vo/LogActions.java @@ -0,0 +1,16 @@ +package com.mca.cmmn.vo; + +public enum LogActions { + LOGIN("login"), + LOGOUT("logout"); + + private String value; + + LogActions(String value) { + this.value = value; + } + + public String getValue(){ + return value; + } +} diff --git a/src/main/java/com/mca/cmmn/vo/LogVO.java b/src/main/java/com/mca/cmmn/vo/LogVO.java new file mode 100644 index 0000000..61c4ac4 --- /dev/null +++ b/src/main/java/com/mca/cmmn/vo/LogVO.java @@ -0,0 +1,61 @@ +package com.mca.cmmn.vo; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class LogVO { + + private String log_cd; + private String userid; + private String action; + private String etc; + private LocalDateTime created_date; + + public String getLog_cd() { + return log_cd; + } + + public void setLog_cd(String log_cd) { + this.log_cd = log_cd; + } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public String getEtc() { + return etc; + } + + public void setEtc(String etc) { + this.etc = etc; + } + + public LocalDateTime getCreated_date() { + return created_date; + } + + public void setCreated_date(LocalDateTime created_date) { + this.created_date = created_date; + } + + public void setLog(String userid, String logAction, String etc, LocalDateTime now){ + setLog_cd(now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")).substring(2)); + setUserid(userid); + setAction(logAction); + setEtc(etc); + setCreated_date(now); + } +} diff --git a/src/main/java/com/mca/cmmn/web/AdminController.java b/src/main/java/com/mca/cmmn/web/AdminController.java index 94b13bc..a119e3e 100644 --- a/src/main/java/com/mca/cmmn/web/AdminController.java +++ b/src/main/java/com/mca/cmmn/web/AdminController.java @@ -1,11 +1,15 @@ package com.mca.cmmn.web; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import com.mca.cmmn.service.LogService; +import com.mca.cmmn.vo.BaseSearchVO; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -60,6 +64,9 @@ public class AdminController { @Resource(name="fieldDataService") private FieldDataService fieldDataService; + @Resource(name = "logService") + private LogService logService; + /** * 대시보드 페이지 이동 * @@ -79,6 +86,15 @@ public class AdminController { int standByCount = userService.selectUserStandByCount(); model.addAttribute("standByCount", standByCount); + BaseSearchVO searchVO = new BaseSearchVO(); + LocalDate searchStartDate = LocalDate.now(); + searchVO.setSearchStartDate(searchStartDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + searchVO.setSearchEndDate(searchStartDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + model.addAttribute("dayLoginCount", logService.selectLoginCnt(searchVO)); + + searchVO.setSearchStartDate(searchStartDate.minusMonths(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + model.addAttribute("monthLoginCount", logService.selectLoginCnt(searchVO)); + return "admin/dashBoard"; } catch (Exception e) { diff --git a/src/main/java/com/mca/sec/LoginSuccessHandler.java b/src/main/java/com/mca/sec/LoginSuccessHandler.java index a1c589b..efcacbf 100644 --- a/src/main/java/com/mca/sec/LoginSuccessHandler.java +++ b/src/main/java/com/mca/sec/LoginSuccessHandler.java @@ -1,12 +1,17 @@ package com.mca.sec; import java.io.IOException; +import java.time.LocalDateTime; +import javax.annotation.Resource; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import com.mca.cmmn.service.LogService; +import com.mca.cmmn.vo.LogActions; +import com.mca.cmmn.vo.LogVO; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; @@ -16,32 +21,45 @@ import com.mca.sec.UserUtil; public class LoginSuccessHandler implements AuthenticationSuccessHandler{ private String roleName; + @Resource(name="logService") + private LogService logService; + + + @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { // TODO Auto-generated method stub LoginUserVO user = UserUtil.getMemberInfo(); - - HttpSession session = request.getSession(); - session.setAttribute("userVO", user); - - LoginSuccessHandler loginSuccessHandler = new LoginSuccessHandler(); - authentication.getAuthorities().forEach(authority ->{ - loginSuccessHandler.roleName = authority.getAuthority(); - }); - - if(loginSuccessHandler.roleName.equals("ROLE_USER")) { - response.sendRedirect("/map/request"); - return; - }else if(loginSuccessHandler.roleName.equals("ROLE_ADMIN")) { - response.sendRedirect("/admin/dashBoard"); - return; - }else if(loginSuccessHandler.roleName.equals("ROLE_DISABLE")) { - response.sendRedirect("/login?fail"); - return; - } - response.sendRedirect("/"); + if(user == null){ + response.sendRedirect("/"); + }else{ + + HttpSession session = request.getSession(); + session.setAttribute("userVO", user); + + LoginSuccessHandler loginSuccessHandler = new LoginSuccessHandler(); + authentication.getAuthorities().forEach(authority ->{ + loginSuccessHandler.roleName = authority.getAuthority(); + }); + + LogVO logVO = new LogVO(); + logVO.setLog(user.getUserid(), LogActions.LOGIN.getValue(), null, LocalDateTime.now()); + logService.insertLog(logVO); + + switch (loginSuccessHandler.roleName) { + case "ROLE_USER": + response.sendRedirect("/map/request"); + return; + case "ROLE_ADMIN": + response.sendRedirect("/admin/dashBoard"); + return; + case "ROLE_DISABLE": + response.sendRedirect("/login?fail"); + return; + } + } } } diff --git a/src/main/java/com/mca/sec/LogoutSuccessHandler.java b/src/main/java/com/mca/sec/LogoutSuccessHandler.java index 05cef44..8f40574 100644 --- a/src/main/java/com/mca/sec/LogoutSuccessHandler.java +++ b/src/main/java/com/mca/sec/LogoutSuccessHandler.java @@ -1,16 +1,24 @@ package com.mca.sec; import java.io.IOException; +import java.time.LocalDateTime; +import javax.annotation.Resource; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.mca.cmmn.service.LogService; +import com.mca.cmmn.vo.LogActions; +import com.mca.cmmn.vo.LogVO; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; public class LogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler{ - + + @Resource(name="logService") + private LogService logService; + private String successUrl = "/"; public void setSuccessUrl(String successUrl){ @@ -18,8 +26,14 @@ public class LogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler{ } public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { - setDefaultTargetUrl(successUrl); - super.onLogoutSuccess(request, response, authentication); - } + + LogVO logVO = new LogVO(); + logVO.setLog(authentication.getName(), LogActions.LOGOUT.getValue(), null, LocalDateTime.now()); + logService.insertLog(logVO); + + setDefaultTargetUrl(successUrl); + super.onLogoutSuccess(request, response, authentication); + } + } diff --git a/src/main/resources/egovframework/sqlmap/mappers/cmmn/logMapper.xml b/src/main/resources/egovframework/sqlmap/mappers/cmmn/logMapper.xml new file mode 100644 index 0000000..8c991f8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/cmmn/logMapper.xml @@ -0,0 +1,19 @@ + + + + + + insert into t_logs values( + #{log_cd}, #{userid}, #{action}, #{etc}, #{created_date} + ); + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml b/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml index 9c5dd52..2aa7633 100644 --- a/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml +++ b/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml @@ -2,24 +2,25 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp b/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp index 3d9772d..67b41ca 100644 --- a/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp +++ b/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp @@ -38,7 +38,7 @@

오늘 방문자 수

-

+

@@ -63,7 +63,7 @@

최근 한달 방문자 수

-

+

diff --git a/src/main/webapp/css/style.css b/src/main/webapp/css/style.css index 5ffc967..4b75dee 100644 --- a/src/main/webapp/css/style.css +++ b/src/main/webapp/css/style.css @@ -93,6 +93,8 @@ a { transform: translate(-50%); background-color: rgba(55, 55, 55, 1); border: 1px solid #ccc; + border-top: none; + border-bottom: none; box-shadow: 5px 5px 20px grey; } .login_title{ From ff0f99444fcfae669372e7381734a1ec3003c52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Fri, 25 Feb 2022 16:51:02 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=EB=B0=A9=EB=AC=B8=EC=9E=90=20=ED=99=95=EC=9D=B8=20=EC=9C=84?= =?UTF-8?q?=EC=B9=98=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/WEB-INF/jsp/admin/dashBoard.jsp | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp b/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp index 67b41ca..8ed30bb 100644 --- a/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp +++ b/src/main/webapp/WEB-INF/jsp/admin/dashBoard.jsp @@ -34,11 +34,11 @@
- +
-

오늘 방문자 수

-

+

-

+

0

@@ -56,6 +56,28 @@
+
+
+
+ +
+
+

-

+

0

+
+
+
+
+
+
+ +
+
+

오늘 방문자 수

+

+
+
+
@@ -67,28 +89,6 @@
-
-
-
- -
-
-

-

-

0

-
-
-
-
-
-
- -
-
-

-

-

0

-
-
-