aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java41
1 files changed, 28 insertions, 13 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java
index faff2955b..90c938e7f 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/AuthenticationSessionStoreage.java
@@ -18,7 +18,7 @@ import org.hibernate.Transaction;
import at.gv.egovernment.moa.id.AuthenticationException;
import at.gv.egovernment.moa.id.MOAIDException;
import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
-import at.gv.egovernment.moa.id.commons.db.MOASessionUtil;
+import at.gv.egovernment.moa.id.commons.db.MOASessionDBUtils;
import at.gv.egovernment.moa.id.commons.db.dao.session.AssertionStore;
import at.gv.egovernment.moa.id.commons.db.dao.session.AuthenticatedSessionStore;
import at.gv.egovernment.moa.id.commons.db.dao.session.OASessionStore;
@@ -62,7 +62,7 @@ public class AuthenticationSessionStoreage {
//store AssertionStore element to Database
try {
- MOASessionUtil.saveOrUpdate(dbsession);
+ MOASessionDBUtils.saveOrUpdate(dbsession);
Log.info("MOASession with sessionID=" + id + " is stored in Database");
} catch (MOADatabaseException e) {
@@ -83,7 +83,7 @@ public class AuthenticationSessionStoreage {
//set Timestamp in this state, because automated timestamp generation is buggy in Hibernate 4.2.1
dbsession.setUpdated(new Date());
- MOASessionUtil.saveOrUpdate(dbsession);
+ MOASessionDBUtils.saveOrUpdate(dbsession);
Log.info("MOASession with sessionID=" + session.getSessionID() + " is stored in Database");
} catch (MOADatabaseException e) {
@@ -96,7 +96,7 @@ public class AuthenticationSessionStoreage {
public static void destroySession(String moaSessionID) throws MOADatabaseException {
- Session session = MOASessionUtil.getCurrentSession();
+ Session session = MOASessionDBUtils.getCurrentSession();
List result;
@@ -168,7 +168,7 @@ public class AuthenticationSessionStoreage {
//set Timestamp in this state, because automated timestamp generation is buggy in Hibernate 4.2.1
dbsession.setUpdated(new Date());
- MOASessionUtil.saveOrUpdate(dbsession);
+ MOASessionDBUtils.saveOrUpdate(dbsession);
return id;
@@ -203,7 +203,7 @@ public class AuthenticationSessionStoreage {
try {
- Session session = MOASessionUtil.getCurrentSession();
+ Session session = MOASessionDBUtils.getCurrentSession();
List result;
synchronized (session) {
@@ -284,11 +284,24 @@ public class AuthenticationSessionStoreage {
}
}
+ public static boolean isSSOSession(String sessionID) throws MOADatabaseException {
+ try {
+ AuthenticatedSessionStore dbsession = searchInDatabase(sessionID);
+ return dbsession.isSSOSession();
+
+ } catch (MOADatabaseException e) {
+ Logger.info("No MOA Session with id: " + sessionID);
+ throw new MOADatabaseException("No MOA Session with id: " + sessionID);
+ }
+
+
+ }
+
public static boolean isValidSessionWithSSOID(String SSOId, String moaSessionId) {
MiscUtil.assertNotNull(SSOId, "moasessionID");
Logger.trace("Get authenticated session with SSOID " + SSOId + " from database.");
- Session session = MOASessionUtil.getCurrentSession();
+ Session session = MOASessionDBUtils.getCurrentSession();
List<AuthenticatedSessionStore> result;
@@ -327,16 +340,18 @@ public class AuthenticationSessionStoreage {
}
- public static void clean(long now, long authDataTimeOut) {
- Date expioredate = new Date(now - authDataTimeOut);
+ public static void clean(long now, long authDataTimeOutCreated, long authDataTimeOutUpdated) {
+ Date expioredatecreate = new Date(now - authDataTimeOutCreated);
+ Date expioredateupdate = new Date(now - authDataTimeOutUpdated);
List<AuthenticatedSessionStore> results;
- Session session = MOASessionUtil.getCurrentSession();
+ Session session = MOASessionDBUtils.getCurrentSession();
synchronized (session) {
session.beginTransaction();
Query query = session.getNamedQuery("getMOAISessionsWithTimeOut");
- query.setTimestamp("timeout", expioredate);
+ query.setTimestamp("timeoutcreate", expioredatecreate);
+ query.setTimestamp("timeoutupdate", expioredateupdate);
results = query.list();
session.getTransaction().commit();
}
@@ -344,7 +359,7 @@ public class AuthenticationSessionStoreage {
if (results.size() != 0) {
for(AuthenticatedSessionStore result : results) {
try {
- MOASessionUtil.delete(result);
+ MOASessionDBUtils.delete(result);
Logger.info("Authenticated session with sessionID=" + result.getSessionid()
+ " after session timeout.");
@@ -361,7 +376,7 @@ public class AuthenticationSessionStoreage {
private static AuthenticatedSessionStore searchInDatabase(String sessionID) throws MOADatabaseException {
MiscUtil.assertNotNull(sessionID, "moasessionID");
Logger.trace("Get authenticated session with sessionID " + sessionID + " from database.");
- Session session = MOASessionUtil.getCurrentSession();
+ Session session = MOASessionDBUtils.getCurrentSession();
List result;