aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2016-10-21 10:26:15 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2016-10-21 10:26:15 +0200
commit121e70662f53fe0820823a23784794021fbc7920 (patch)
tree85d7b652f4f94f4a34c3aa45851f202dfcc43437 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
parent65cdf9b59c2d2836bdc24cca27992a1f32f7876e (diff)
downloadmoa-id-spss-121e70662f53fe0820823a23784794021fbc7920.tar.gz
moa-id-spss-121e70662f53fe0820823a23784794021fbc7920.tar.bz2
moa-id-spss-121e70662f53fe0820823a23784794021fbc7920.zip
fix possible multi-threading problem with database connections
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java53
1 files changed, 26 insertions, 27 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
index 34bdd350b..14c0800b1 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
@@ -26,15 +26,19 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Service;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
import at.gv.e_government.reference.namespace.mandates._20040701_.Mandator;
@@ -49,8 +53,6 @@ import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
import at.gv.egovernment.moa.id.commons.api.IRequest;
import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.commons.config.SpringProfileConstants;
-import at.gv.egovernment.moa.id.commons.db.StatisticLogDBUtils;
import at.gv.egovernment.moa.id.commons.db.dao.statistic.StatisticLog;
import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
@@ -61,7 +63,8 @@ import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.MiscUtil;
-@Service("StatisticLogger")
+@Repository("StatisticLogger")
+@Transactional("statisticLogTransactionManager")
public class StatisticLogger implements IStatisticLogger{
private static final String GENERIC_LOCALBKU = ":3496/https-security-layer-request";
@@ -81,8 +84,20 @@ public class StatisticLogger implements IStatisticLogger{
@Autowired AuthConfiguration authConfig;
@Autowired IAuthenticationSessionStoreage authenticatedSessionStorage;
- @Autowired StatisticLogDBUtils statisticLogDBUtils;
+
+ @PersistenceContext(unitName="statistic")
+ private EntityManager entityManager;
+
+
+ public void testConnection() throws Exception {
+ Date expioredate = new Date(new Date().getTime() - 120);
+ Query query = entityManager.createNamedQuery("getAllEntriesNotBeforeTimeStamp");
+ query.setParameter("timeout", expioredate);
+ List<StatisticLog> result = query.getResultList();
+ }
+
+
public void logSuccessOperation(IRequest protocolRequest, IAuthData authData, boolean isSSOSession) {
if ( authConfig.isAdvancedLoggingActive() && protocolRequest != null && authData != null) {
@@ -190,15 +205,9 @@ public class StatisticLogger implements IStatisticLogger{
}
}
}
+
+ entityManager.persist(dblog);
-
-
- try {
- statisticLogDBUtils.saveOrUpdate(dblog);
-
- } catch (MOADatabaseException e) {
- Logger.warn("Statistic Log can not be stored into Database", e);
- }
}
}
@@ -219,12 +228,8 @@ public class StatisticLogger implements IStatisticLogger{
- try {
- statisticLogDBUtils.saveOrUpdate(dblog);
-
- } catch (MOADatabaseException e) {
- Logger.warn("Statistic Log can not be stored into Database", e);
- }
+ entityManager.persist(dblog);
+
}
}
@@ -268,14 +273,8 @@ public class StatisticLogger implements IStatisticLogger{
generateErrorLogFormThrowable(throwable, dblog);
-
+ entityManager.persist(dblog);
- try {
- statisticLogDBUtils.saveOrUpdate(dblog);
-
- } catch (MOADatabaseException e) {
- Logger.warn("Statistic Log can not be stored into Database", e);
- }
}
}
}