This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/4.0.x by this push:
     new b20e879  [OPENMEETINGS-1864] user IP address clean-up is added
b20e879 is described below

commit b20e8792d8453e96e96b5e5391271bd4cad70257
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Sun Apr 22 00:49:51 2018 +0700

    [OPENMEETINGS-1864] user IP address clean-up is added
---
 .../apache/openmeetings/db/dao/log/ConferenceLogDao.java |  8 +++++++-
 .../apache/openmeetings/db/entity/log/ConferenceLog.java |  2 ++
 .../service/quartz/scheduler/CleanupJob.java             | 16 ++++++++++++++++
 .../main/webapp/WEB-INF/classes/applicationContext.xml   | 10 +++++++++-
 4 files changed, 34 insertions(+), 2 deletions(-)

diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
index 6c55732..67e8df0 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
@@ -51,7 +51,13 @@ public class ConferenceLogDao {
                confLog.setUserip(userip);
 
                em.persist(confLog);
-               log.debug("[addConferenceLog]: " + confLog);
+               log.debug("[add]: {}", confLog);
                return confLog;
        }
+
+       public int clear(long ttl) {
+               return em.createNamedQuery("clearLogUserIp")
+                       .setParameter("date", new 
Date(System.currentTimeMillis() - ttl))
+                       .executeUpdate();
+       }
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
index a05912b..c95c707 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
@@ -38,6 +38,8 @@ import org.apache.openmeetings.db.entity.IDataProviderEntity;
 @NamedQueries({
        @NamedQuery(name = "getLogRecentRooms", query = "SELECT c FROM 
ConferenceLog c "
                + "WHERE c.roomId IS NOT NULL AND c.type = :roomEnter and 
c.userId = :userId ORDER BY c.inserted DESC")
+       , @NamedQuery(name = "clearLogUserIp", query = "UPDATE ConferenceLog c 
SET c.userip = NULL "
+                       + "WHERE c.userip IS NOT NULL AND c.inserted < :date")
 })
 public class ConferenceLog implements IDataProviderEntity {
        private static final long serialVersionUID = 1L;
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
index 33b34b1..d73ecad 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
@@ -30,6 +30,7 @@ import java.util.Map;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.math.NumberUtils;
+import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.room.Whiteboard;
@@ -47,6 +48,7 @@ public class CleanupJob extends AbstractJob {
        private long testSetupTimeout = 60 * 60 * 1000L; // 1 hour
        private long roomFilesTtl = 60 * 60 * 1000L; // 1 hour
        private long resetHashTtl = 24 * 60 * 60 * 1000L; // 1 day
+       private long confLogTtl = 7 * 24 * 60 * 60 * 1000L; // 7 days
 
        @Autowired
        private SessiondataDao sessionDao;
@@ -56,6 +58,8 @@ public class CleanupJob extends AbstractJob {
        private UserDao userDao;
        @Autowired
        private IWhiteboardManager wbManager;
+       @Autowired
+       private ConferenceLogDao confLogDao;
 
        public void setSessionTimeout(long sessionTimeout) {
                this.sessionTimeout = sessionTimeout;
@@ -73,6 +77,10 @@ public class CleanupJob extends AbstractJob {
                this.resetHashTtl = resetHashTtl;
        }
 
+       public void setConfLogTtl(long confLogTtl) {
+               this.confLogTtl = confLogTtl;
+       }
+
        public void cleanTestSetup() {
                log.trace("CleanupJob.cleanTestSetup");
                final long now = System.currentTimeMillis();
@@ -179,4 +187,12 @@ public class CleanupJob extends AbstractJob {
                        log.debug("... DONE CleanupJob.cleanExpiredResetHash");
                }
        }
+
+       public void cleanPersonalData() {
+               log.trace("CleanupJob.cleanPersonalData");
+               if (!isInitComplete()) {
+                       return;
+               }
+               confLogDao.clear(confLogTtl);
+       }
 }
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index c8fec62..13bbdec 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -47,9 +47,11 @@
                        1800000         == 30 min
                        3600000         == 1 hour
                        86400000        == 1 day
+                       604800000       == 7 days
         -->
        <bean id="cleanupJob" 
class="org.apache.openmeetings.service.quartz.scheduler.CleanupJob"
-                       p:sessionTimeout="1800000" p:testSetupTimeout="3600000" 
p:roomFilesTtl="3600000" p:resetHashTtl="86400000" />
+                       p:sessionTimeout="1800000" p:testSetupTimeout="3600000" 
p:roomFilesTtl="3600000" p:resetHashTtl="86400000"
+                       p:confLogTtl="604800000" />
        <!-- sessions clean-up -->
        <bean id="cleanSessionsJobDetails" 
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
                        p:targetObject-ref="cleanupJob" 
p:targetMethod="cleanSessions" p:concurrent="false" />
@@ -75,6 +77,11 @@
                        p:targetObject-ref="cleanupJob" 
p:targetMethod="cleanExpiredResetHash" p:concurrent="false" />
        <bean id="triggerCleanExpiredResetHash" 
class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
                        p:jobDetail-ref="cleanExpiredResetHashJobDetails" 
p:startDelay="5000" p:repeatInterval="3600000" />
+       <!-- user IP address -->
+       <bean id="cleanPersonalData" 
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
+                       p:targetObject-ref="cleanupJob" 
p:targetMethod="cleanPersonalData" p:concurrent="false" />
+       <bean id="triggerCleanPersonalData" 
class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
+                       p:jobDetail-ref="cleanPersonalData" p:startDelay="5000" 
p:repeatInterval="3600000" />
 
        <bean id="meetingReminderJobDetail" 
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
                        p:targetObject-ref="reminderJob" 
p:targetMethod="remindMeetings" p:concurrent="false" />
@@ -107,6 +114,7 @@
                                <ref bean="triggerCleanRoomFiles" />
                                <ref bean="triggerCleanExpiredRec" />
                                <ref bean="triggerCleanExpiredResetHash" />
+                               <ref bean="triggerCleanPersonalData" />
                                <ref bean="triggerMeetingReminder" />
                                <ref bean="triggerExpiringRecording" />
                                <ref bean="triggerResetSendingMailStatus" />

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to