diff options
author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-10-21 10:26:15 +0200 |
---|---|---|
committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-10-21 10:26:15 +0200 |
commit | 121e70662f53fe0820823a23784794021fbc7920 (patch) | |
tree | 85d7b652f4f94f4a34c3aa45851f202dfcc43437 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java | |
parent | 65cdf9b59c2d2836bdc24cca27992a1f32f7876e (diff) | |
download | moa-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.java | 53 |
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); - } } } } |