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.