You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/04/21 17:50:29 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1864] user IP address clean-up is added

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

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


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

commit 7f046b2e0c35b6fec1cbff0b28143aa92016cdf5
Author: Maxim Solodovnik <so...@gmail.com>
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 9262cce..8c25f85 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
@@ -49,7 +49,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 e3e5ad1..e05bda4 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
@@ -29,6 +29,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;
@@ -46,6 +47,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;
@@ -55,6 +57,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;
@@ -72,6 +76,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();
@@ -178,4 +186,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
solomax@apache.org.