소스 검색

개인정보접속로그 수정

huiwonseo 4 년 전
부모
커밋
e6d1931077

+ 23 - 0
src/main/java/com/lemon/lifecenter/common/ApplicationContextServe.java

@@ -0,0 +1,23 @@
+package com.lemon.lifecenter.common;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class ApplicationContextServe implements ApplicationContextAware{
+    private static ApplicationContext applicationContext;
+    
+    @Override
+    public void setApplicationContext(ApplicationContext context) throws BeansException {
+        applicationContext = context;
+    }
+    
+    
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+}
+

+ 57 - 69
src/main/java/com/lemon/lifecenter/common/LifeCenterQueryLog.java

@@ -49,8 +49,6 @@ public class LifeCenterQueryLog implements Interceptor {
         
     @Override
     public Object intercept(Invocation invocation) throws Throwable {
-        
-        
         String method = invocation.getMethod().getName();
         
         StatementHandler handler = (StatementHandler) invocation.getTarget();
@@ -61,76 +59,66 @@ public class LifeCenterQueryLog implements Interceptor {
                 handler.getParameterHandler().getParameterObject().toString() : "";
         
         Object session = request.getSession().getAttribute( "sesId" );
-        String url  = request.getRequestURI().toString();
-        String port = String.valueOf(request.getServerPort());
-        Object groupIdx = request.getSession().getAttribute( "sesGroupIdx" );
-        Object sesMId   = request.getSession().getAttribute( "sesMId" );
-        Object sesPasswordChange = request.getSession().getAttribute( "sesPasswordChange" );
-        Object sesAcceptCheck = request.getSession().getAttribute( "sesAcceptCheck" );
-        Object sesPermissions = request.getSession().getAttribute( "sesPermissions" );
-//        System.err.println( param );
-//        if( sql.contains( "-- insertSysQueryLog" ) ) {
-//            System.err.println( param );
-//        }
-        if( session != null ) {
-            if( !param.contains( "com.lemon.lifecenter.dto.LoginDTO" ) ) {
-                if( !sql.contains( "-- selectNowPathRoleCheckTotal" ) &&
-                        !sql.contains( "-- selectNowPathRoleCheckData" ) && 
-                        !sql.contains( "-- insertMenuAccessLog" ) &&
-                        !sql.contains( "-- selectSideMenuList" ) && 
-                        !sql.contains( "-- insertPrivateAccessLog" ) ) {
-                    
-                    System.err.println("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
-                    System.err.println(sql);
-                    try { 
-                        //개발
-                        String durl = "jdbc:log4jdbc:cubrid:118.67.133.187:30000:LIFE_CENTER:::?charset=UTF-8";
-                        //통전
-                        String surl = "jdbc:cubrid:10.175.153.104:30000:LIFE_CENTER:::?altHosts=10.175.153.105:30000&charset=UTF-8";
-                        
-                        String user = "dba"; 
-                        String passwd = "#zo240s!"; 
-                        con = DriverManager.getConnection(durl, user, passwd); 
-                        System.out.println("DB연결 성공");
-                        stmt = con.createStatement();
-                        System.out.println("Statement객체 생성 성공");
-                        
-                        String ss = ""
-                                + "INSERT "
-                                + "  INTO private_access_log "
-                                + "       ( id, accessor_detail, ip, create_date, full_url, processing_contents, processing_target ) "
-                                + "VALUES ( 'hwsys', '222r2r2rs', '1234', NOW(), 'test111', ?, '')";
-                        PreparedStatement stmt = con.prepareStatement(ss);
-                        stmt.setString(1, sql);
-                        stmt.executeUpdate();
-
-                        stmt.close(); 
-                        con.close(); 
-                    } catch (SQLException e) { 
-                            System.out.println("DB연결 실패"); 
-                            System.out.print("사유 : " + e.getMessage()); 
-                    }
-                    
-                    
-                    System.err.println("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
-                }
-            }
-        }
+        String url     = request.getRequestURI().toString();
         
-        if ( url.contains( "/error" ) || url.contains( "/nonface/wait" ) || url.contains( "/mobile/call" ) ||
-             url.contains( "/store" ) || url.contains( "/favicon.ico" )  || url.contains( "/mobile/getAppVersion" ) ||
-             url.contains("/lifeCenter/api") || url.contains( "/accept/public" ) ) {
-            
-        } else if( url.contains( "/mobile" ) ) {
-            
-        } else {
-            
-            if( !url.equals( "/login/staff" ) && !url.equals( "/login/admin" ) ) {
-                if( session == null ) {
-                    
+        
+        // 환자관리, 진료관리, 의료진관리
+        if( url.contains( "/patient/" ) || url.contains( "/clinic/" ) || url.contains( "/staff/" ) ) {
+            if( !url.contains( "/statistics/patient/" ) ) {
+                if( session != null && !url.contains( "/mobile" ) ) {
+                    if( !param.contains( "com.lemon.lifecenter.dto.LoginDTO" ) ) {
+                        if( !sql.contains( "-- selectNowPathRoleCheckTotal" ) &&
+                            !sql.contains( "-- selectNowPathRoleCheckData" ) && 
+                            !sql.contains( "-- insertMenuAccessLog" ) &&
+                            !sql.contains( "-- selectSideMenuList" ) && 
+                            !sql.contains( "-- insertPrivateAccessLog" ) 
+                          ) {
+                            
+                            //System.err.println("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
+                            //System.err.println(sql);
+                            try { 
+                                
+                                //application.properties 에서 값을 들고옴
+                                String durl   = PropertyUtil.getProperty("spring.datasource.url");
+                                String user   = PropertyUtil.getProperty("spring.datasource.username"); 
+                                String passwd = PropertyUtil.getProperty("spring.datasource.password");
+                                
+                                con = DriverManager.getConnection(durl, user, passwd); 
+                                // System.out.println("DB연결 성공");
+                                stmt = con.createStatement();
+                                // System.out.println("Statement객체 생성 성공");
+                                
+                                String sesName        = LifeCenterSessionController.getSession( request, "sesName" );
+                                String sesCenterName  = LifeCenterSessionController.getSession( request, "sesCenterName" );
+                                String logCenterName = !sesCenterName.equals( "" )? "["+sesCenterName+"] " : "";
+                                String sesId  = LifeCenterSessionController.getSession( request, "sesId" );
+                                
+                                String insertQuery = ""
+                                        + "INSERT "
+                                        + "  INTO private_access_log "
+                                        + "       ( id, accessor_detail, ip, create_date, full_url, processing_contents, processing_target ) "
+                                        + "VALUES ( ?, ?, ?, NOW(), ?, ?, '')";
+                                PreparedStatement stmt = con.prepareStatement( insertQuery );
+                                stmt.setString(1, sesId );
+                                stmt.setString(2, logCenterName + sesName + " (" + sesId + ")" );
+                                stmt.setString(3, LifeCenterFunction.getRemoteAddr( request ));
+                                stmt.setString(4, LifeCenterFunction.getFullURL( request )  );
+                                stmt.setString(5, sql);
+                                stmt.executeUpdate();
+
+                                stmt.close(); 
+                                con.close(); 
+                            } catch (SQLException e) { 
+                                    System.out.println("DB연결 실패"); 
+                                    System.out.print("사유 : " + e.getMessage()); 
+                            }
+                            
+                            
+                            //System.err.println("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
+                        }
+                    }
                 }
             }
-            
         }
         
         return invocation.proceed();

+ 23 - 0
src/main/java/com/lemon/lifecenter/common/PropertyUtil.java

@@ -0,0 +1,23 @@
+package com.lemon.lifecenter.common;
+
+import org.springframework.context.ApplicationContext;
+
+public class PropertyUtil {
+    public static String getProperty(String propertyName) {
+        return getProperty(propertyName, null);
+    }
+    
+    public static String getProperty(String propertyName, String defaultValue) {
+        String value = defaultValue;
+        ApplicationContext applicationContext = ApplicationContextServe.getApplicationContext();
+        
+        if(applicationContext.getEnvironment().getProperty(propertyName) == null) {
+            
+        } else {
+            value = applicationContext.getEnvironment().getProperty(propertyName).toString();
+        }
+        
+        return value;
+    }
+}
+

+ 7 - 7
src/main/java/com/lemon/lifecenter/controller/PatientController.java

@@ -125,7 +125,7 @@ public class PatientController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         PatientDTO dto = new PatientDTO();
@@ -200,7 +200,7 @@ public class PatientController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         
@@ -295,7 +295,7 @@ public class PatientController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(환자)" + dto.getPatientName() + "["+dto.getPatientIdx()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         
@@ -347,7 +347,7 @@ public class PatientController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(환자)" + dto.getPatientName() + "["+dto.getPatientIdx()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         String jumin = dto.getJumin();
@@ -480,7 +480,7 @@ public class PatientController extends LifeCenterController {
             logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
             logDTO.setProcessingTarget( "(환자)" + patientOne.getPatientName() + "["+patientOne.getPatientIdx()+"]" );
             logDTO.setProcessingContents( processingContents );
-            privateLogService.insertPrivateAccessLog( logDTO );
+            // privateLogService.insertPrivateAccessLog( logDTO );
         }
         
         LifeCenterFunction.scriptMessage( response, "alertBox({ txt: '환자정보가 삭제되었습니다. ', callBack : function(){ location.href='./list'; } });" );
@@ -515,7 +515,7 @@ public class PatientController extends LifeCenterController {
             logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
             logDTO.setProcessingTarget( "(환자)" + patientDTO.getPatientName() + "["+patientDTO.getPatientIdx()+"]" );
             logDTO.setProcessingContents( processingContents );
-            privateLogService.insertPrivateAccessLog( logDTO );
+            // privateLogService.insertPrivateAccessLog( logDTO );
             
             
             
@@ -688,7 +688,7 @@ public class PatientController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(환자)" + originPatientData.getPatientName() + "["+originPatientData.getPatientIdx()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         return "redirect:/patient/info?patientIdx=" + patientIdx;

+ 10 - 10
src/main/java/com/lemon/lifecenter/controller/StaffController.java

@@ -78,7 +78,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         CenterInfoDTO cDto  = new CenterInfoDTO();
@@ -138,7 +138,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(의료진)" + dto.getName() + "["+dto.getId()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         return "redirect:../info?staffId=" + dto.getId();
@@ -168,7 +168,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(의료진)" + dto.getName() + "["+dto.getId()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         
@@ -209,7 +209,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(의료진)" + dto.getName() + "["+dto.getId()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         String groupIdx = LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, String.valueOf(dto.getGroupIdx()));
@@ -311,7 +311,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(의료진)" + originMemberData.getName() + "["+originMemberData.getId()+"]"  );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         
@@ -338,7 +338,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(의료진)" + dto.getName() + "["+dto.getId()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         String referer  = request.getHeader( "Referer" );
         ModelAndView mv = setMV("staff/myinfo");
@@ -439,7 +439,7 @@ public class StaffController extends LifeCenterController {
             logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
             logDTO.setProcessingTarget( "(의료진)" + originMemberData.getName() + "["+originMemberData.getId()+"]"  );
             logDTO.setProcessingContents( processingContents );
-            privateLogService.insertPrivateAccessLog( logDTO );
+            // privateLogService.insertPrivateAccessLog( logDTO );
             
             
             
@@ -480,7 +480,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         
@@ -570,7 +570,7 @@ public class StaffController extends LifeCenterController {
         logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
         logDTO.setProcessingTarget( "(의료진)" + info.getName() + "["+info.getId()+"]" );
         logDTO.setProcessingContents( processingContents );
-        privateLogService.insertPrivateAccessLog( logDTO );
+        // privateLogService.insertPrivateAccessLog( logDTO );
         
         
         
@@ -635,7 +635,7 @@ public class StaffController extends LifeCenterController {
             logDTO.setFullUrl( LifeCenterFunction.getFullURL( request ) );
             logDTO.setProcessingTarget( "(의료진)" + info.getName() + "["+info.getId()+"]" );
             logDTO.setProcessingContents( processingContents );
-            privateLogService.insertPrivateAccessLog( logDTO );
+            // privateLogService.insertPrivateAccessLog( logDTO );
         }
         
         LifeCenterFunction.scriptMessage( response, "alertBox({ txt: '사용자가 삭제되었습니다. ', callBack : function(){ location.href='./list'; } });" );

+ 9 - 14
src/main/webapp/WEB-INF/jsp/private/list.jsp

@@ -104,7 +104,6 @@ var endDate   = "<c:out value='${endDate}'/>";
                                                               <option value="id" <c:if test="${searchType eq 'id'}"> selected="selected"</c:if>>아이디</option>
                                                               <option value="ip" <c:if test="${searchType eq 'ip'}"> selected="selected"</c:if>>접속 IP</option>
                                                               <option value="url" <c:if test="${searchType eq 'url'}"> selected="selected"</c:if>>URL</option>
-                                                              <option value="target" <c:if test="${searchType eq 'target'}"> selected="selected"</c:if>>정보주체</option>
                                                             </select>
                                                         </div>
                                                         <div class="col-6">
@@ -140,14 +139,12 @@ var endDate   = "<c:out value='${endDate}'/>";
                                     <div class="table-responsive">
                                         <table class="table table-striped text-center">
                                             <colgroup>
-                                                <col style="width: 6%;">
-                                                <col style="width: 6%;">
-                                                <col style="width: 12%;">
-                                                <col style="width: 6%;">
-                                                <col style="width: 6%;">
-                                                <col style="width: 15%;">
-                                                <col style="">
-                                                <col style="width: 10%;">
+                                                <col style="width: 6%;"/>
+                                                <col style="width: 6%;"/>
+                                                <col style="width: 9%;"/>
+                                                <col style="width: 9%;"/>
+                                                <col style="width: 9%;"/>
+                                                <col style="width: 9%;"/>
                                             </colgroup>
                                             <thead>
                                                 <tr>
@@ -157,8 +154,7 @@ var endDate   = "<c:out value='${endDate}'/>";
                                                     <th>접속 IP</th>
                                                     <th>접속일자</th>
                                                     <th>URL</th>
-                                                    <th>수행업무 및 처리내용</th>
-                                                    <th>정보 주체</th>
+                                                    <th>수행업무 (SQL)</th>
                                                 </tr>
                                             </thead>
                                             <tbody>
@@ -172,15 +168,14 @@ var endDate   = "<c:out value='${endDate}'/>";
                                                                 <td><c:out value="${ll.accessorDetail}" /></td>
                                                                 <td><c:out value="${ll.ip}" /></td>
                                                                 <td><c:out value="${ll.createDate}" /></td>
-                                                                <td class="text-left"><c:out value="${ll.fullUrl}" /></td>
+                                                                <td style="max-width: 250px;" class="text-left"><c:out value="${ll.fullUrl}" /></td>
                                                                 <td class="text-left"><c:out value="${ll.processingContents}" /></td>
-                                                                <td><c:out value="${ll.processingTarget}" /></td>
                                                             </tr>
                                                         </c:forEach>
                                                     </c:when>
                                                     <c:otherwise>
                                                         <tr>
-                                                            <td colspan="8">이력이 없습니다</td>
+                                                            <td colspan="7">이력이 없습니다</td>
                                                         </tr>
                                                     </c:otherwise>
                                                 </c:choose>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
src/main/webapp/resources/css/common/basic.css