aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/main/java
diff options
context:
space:
mode:
authorChristian Maierhofer <cmaierhofer@iaik.tugraz.at>2016-05-03 11:38:51 +0200
committerChristian Maierhofer <cmaierhofer@iaik.tugraz.at>2016-05-03 11:38:51 +0200
commit42e40bb58ec9b4c6b7a474e058e79d366548a520 (patch)
tree3fdadd523377a3f37a6b069823679c4da78d2474 /id/server/moa-id-commons/src/main/java
parent61661f2ea4978d56691f7a672469c6d43e9dba41 (diff)
downloadmoa-id-spss-42e40bb58ec9b4c6b7a474e058e79d366548a520.tar.gz
moa-id-spss-42e40bb58ec9b4c6b7a474e058e79d366548a520.tar.bz2
moa-id-spss-42e40bb58ec9b4c6b7a474e058e79d366548a520.zip
Added Transactional Support to MOASessionDBUtils
Diffstat (limited to 'id/server/moa-id-commons/src/main/java')
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java119
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java4
2 files changed, 8 insertions, 115 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java
index 88de9ceb5..fbbaf9476 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java
@@ -41,49 +41,14 @@ public class MOASessionDBUtils {
private SessionFactory sessionFactory;
-// private static ServiceRegistry serviceRegistry;
-
-// @SuppressWarnings("rawtypes")
-// private static final ThreadLocal THREAD_LOCAL = new ThreadLocal();
-// private static boolean automaticSessionHandling = false;
-// private static final String[] AUTOMATIC_SESSION_HANDLING_VALUES = new String[] { "jta", "thread" };
-// private static final String SESSION_HANDLING_KEY = "hibernate.current_session_context_class";
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void initHibernate(Configuration config, Properties hibernateProperties) {
-//
-// String scm = StringUtils.trimToNull(hibernateProperties.getProperty(SESSION_HANDLING_KEY));
-// if (scm != null) {
-// automaticSessionHandling = scm.indexOf(AUTOMATIC_SESSION_HANDLING_VALUES[0]) != -1 || scm.indexOf(AUTOMATIC_SESSION_HANDLING_VALUES[1]) != -1;
-// }
-// Logger.debug("Evaluating hibernate property \"" + SESSION_HANDLING_KEY + "\".");
-// if (automaticSessionHandling) {
-// Logger.info("Hibernate is automatically handling session context management.");
-// } else {
-// Logger.info("Hibernate is NOT automatically handling session context management. Using build-in ThreadLocal session handling.");
-// }
-// try {
-// //Create the SessionFactory
-// Logger.debug("Creating initial MOASession session factory...");
-//
-// config.configure("hibernate_moasession.cfg.xml");
-// //serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
-//
-// // serviceRegistry = new StandardServiceRegistryBuilder().
-// // applySettings(config.getProperties()).build();
-//
-// //dbSessionSessionFactory = config.buildSessionFactory(serviceRegistry);
-//
-// Logger.debug("Initial MOASession session factory successfully created.");
-//
-// } catch (Throwable ex) {
-// Logger.error("Initial MOASession session factory creation failed: " + ex.getMessage());
-// throw new ExceptionInInitializerError(ex);
-// }
+
}
/**
@@ -96,104 +61,30 @@ public class MOASessionDBUtils {
*/
public Session getCurrentSession() {
return sessionFactory.getCurrentSession();
-// if (automaticSessionHandling) {
-// return dbSessionSessionFactory.getCurrentSession();
-// }
-// Session session = (Session) THREAD_LOCAL.get();
-// // Open a new Session, if this Thread has none yet
-// if (session == null || !session.isConnected()) {
-// session = getNewSession();
-// }
-// return session;
- }
-
- @SuppressWarnings("unchecked")
- public Session getNewSession() {
- return sessionFactory.getCurrentSession();
-// if (automaticSessionHandling) {
-// Logger.warn("Session is being automatically handled by hibernate. Therefore this session maybe not being newly created. Use HibernateUtil.getCurrentSession() instead.");
-// return dbSessionSessionFactory.getCurrentSession();
-// }
-// Session session = (Session) THREAD_LOCAL.get();
-// if (session != null) {
-// Logger.warn("Previous MOASession session has not been closed; closing session now.");
-// closeSession();
-// }
-// Logger.debug("Opening new MOASession hibernate session...");
-// try {
-// session = dbSessionSessionFactory.openSession();
-// THREAD_LOCAL.set(session);
-// } catch (HibernateException hex) {
-// Logger.error(hex.getMessage());
-// }
-// return session;
- }
-
- /**
- * Closes the current session.
- *
- * @throws HibernateException
- * thrown if session is already closed or a hibernate error
- * occurs.
- */
- @SuppressWarnings("unchecked")
- public void closeSession() {
- return;
-// if (automaticSessionHandling) {
-// Logger.warn("Session is being automatically handled by hibernate. Therefore the current session cannot be closed on demand.");
-// return;
-// }
-// Logger.debug("Closing current MOASession hibernate session...");
-// Session session = (Session) THREAD_LOCAL.get();
-// THREAD_LOCAL.set(null);
-// if (session != null) {
-// try {
-// session.close();
-//
-// } catch (HibernateException hex) {
-// Logger.error(hex.getMessage());
-// }
-// }
}
public boolean saveOrUpdate(Object dbo) throws MOADatabaseException {
- // Transaction tx = null;
try {
Session session = sessionFactory.getCurrentSession();
- session.saveOrUpdate(dbo);
+ session.merge(dbo);
return true;
-//
-// synchronized (session) {
-// tx = session.beginTransaction();
-// session.saveOrUpdate(dbo);
-// tx.commit();
-// }
-// return true;
} catch(HibernateException e) {
- Logger.warn("Error during MOASession database saveOrUpdate. Rollback.", e);
+ Logger.warn("Error during MOASession database saveOrUpdate.", e);
throw new MOADatabaseException(e);
}
}
public boolean delete(Object dbo) {
- //Transaction tx = null;
+
try {
Session session = sessionFactory.getCurrentSession();
session.delete(dbo);
-// synchronized (session) {
-// tx = session.beginTransaction();
-// session.delete(dbo);
-// tx.commit();
-// }
-
return true;
} catch(HibernateException e) {
- Logger.warn("Error during MOASession database delete. Rollback.", e);
-// if (tx != null)
-// tx.rollback();
+ Logger.warn("Error during MOASession database delete. Rollback.");
return false;
}
}
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java
index 6333451b9..f5fc798b0 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java
@@ -57,7 +57,9 @@ import org.hibernate.annotations.DynamicUpdate;
@NamedQuery(name="getMOASessionWithNameIDandOAID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.activeOAsessions activeOAsessions where activeOAsessions.oaurlprefix = :oaID and activeOAsessions.userNameID = :nameID"),
@NamedQuery(name="getInterfederatedIDPForAttributeQueryWithSessionID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is false and authenticatedsessionstore.sessionid = :sessionID"),
@NamedQuery(name="getInterfederatedIDPForSSOWithSessionID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is true and inderfederations.storeSSOInformation is true and authenticatedsessionstore.sessionid = :sessionID order by inderfederations.QAALevel DESC"),
- @NamedQuery(name="getInterfederatedIDPForSSOWithSessionIDIDPID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is true and authenticatedsessionstore.sessionid = :sessionID and inderfederations.idpurlprefix = :idpID")
+ @NamedQuery(name="getInterfederatedIDPForSSOWithSessionIDIDPID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is true and authenticatedsessionstore.sessionid = :sessionID and inderfederations.idpurlprefix = :idpID"),
+ @NamedQuery(name="getAllActiveOAsForSessionID", query = "select activeOAsessions from AuthenticatedSessionStore authenticatedsessionstore join authenticatedsessionstore.activeOAsessions activeOAsessions where authenticatedsessionstore.sessionid = :sessionID "),
+ @NamedQuery(name="getAllActiveIDPsForSessionID", query = "select inderfederation from AuthenticatedSessionStore authenticatedsessionstore join authenticatedsessionstore.inderfederation inderfederation where authenticatedsessionstore.sessionid = :sessionID ")
})
public class AuthenticatedSessionStore implements Serializable{