aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java46
1 files changed, 15 insertions, 31 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
index f303adfe5..0f75cf63b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
@@ -78,26 +78,11 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
private static JsonMapper mapper = new JsonMapper();
@Override
- public boolean isAuthenticated(String internalSsoSessionID) {
-
- AuthenticatedSessionStore session;
-
- try {
- session = searchInDatabase(internalSsoSessionID);
- return session.isAuthenticated();
-
- } catch (MOADatabaseException e) {
- return false;
- }
- }
-
- @Override
public AuthenticationSession createInternalSSOSession(IRequest target) throws MOADatabaseException, BuildException {
String id = Random.nextLongRandom();
try {
AuthenticatedSessionStore dbsession = new AuthenticatedSessionStore();
dbsession.setSessionid(id);
- dbsession.setAuthenticated(false);
//set Timestamp in this state, because automated timestamp generation is buggy in Hibernate 4.2.1
Date now = new Date();
@@ -107,7 +92,7 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
//set additional session informations
AuthenticationSessionExtensions sessionExt = new AuthenticationSessionExtensions();
sessionExt.setUniqueSessionId(target.getUniqueSessionIdentifier());
- dbsession.setAdditionalInformation(mapper.serialize(sessionExt).getBytes("UTF-8"));
+ dbsession.setAdditionalInformationBytes(mapper.serialize(sessionExt).getBytes("UTF-8"));
AuthenticationSession session = new AuthenticationSession(id, now,
new AuthenticationSessionWrapper(target.genericFullDataStorage()));
@@ -155,9 +140,9 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
public AuthenticationSessionExtensions getAuthenticationSessionExtensions(String sessionID) throws MOADatabaseException {
AuthenticatedSessionStore dbsession = searchInDatabase(sessionID);
- if (MiscUtil.isNotEmpty(dbsession.getAdditionalInformation())) {
+ if (dbsession.getAdditionalInformationBytes() != null) {
try {
- return (AuthenticationSessionExtensions)mapper.deserialize(new String(dbsession.getAdditionalInformation(), "UTF-8"),
+ return (AuthenticationSessionExtensions)mapper.deserialize(new String(dbsession.getAdditionalInformationBytes(), "UTF-8"),
AuthenticationSessionExtensions.class);
} catch (Exception e) {
@@ -173,7 +158,7 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
try {
AuthenticatedSessionStore dbsession = searchInDatabase(sessionID);
- dbsession.setAdditionalInformation(
+ dbsession.setAdditionalInformationBytes(
mapper.serialize(sessionExtensions).getBytes("UTF-8"));
entityManager.merge(dbsession);
@@ -292,11 +277,11 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
}
@Override
- public void addSSOInformation(String moaSessionID, String SSOSessionID,
+ public void addSSOInformation(String internalSSOSessionID, String externalSSOSessionID,
SLOInformationInterface SLOInfo, IRequest protocolRequest) throws AuthenticationException {
Query query = entityManager.createNamedQuery("getSessionWithID");
- query.setParameter("sessionid", moaSessionID);
+ query.setParameter("sessionid", internalSSOSessionID);
List<AuthenticatedSessionStore> results = query.getResultList();
Logger.trace("Found entries: " + results.size());
@@ -355,8 +340,7 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
}
dbsession.setSSOSession(true);
- dbsession.setSSOsessionid(SSOSessionID);
- dbsession.setAuthenticated(false);
+ dbsession.setSSOsessionid(externalSSOSessionID);
//Store MOASession
entityManager.merge(dbsession);
@@ -551,23 +535,23 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
@Override
public void addFederatedSessionInformation(IRequest req, String idpEntityID, AssertionAttributeExtractor extractor) throws MOADatabaseException, AssertionAttributeExtractorExeption, BuildException, EAAFConfigurationException {
AuthenticatedSessionStore dbsession = null;
- String ssoSessionId = null;
+ String internalSSOSessionId = null;
Date now = new Date();
//search for active session
- if (MiscUtil.isNotEmpty(req.getSSOSessionIdentifier())) {
- Logger.debug("Internal SSO-Session object: " + req.getSSOSessionIdentifier() + " used for federated SSO");
- ssoSessionId = getInternalSSOSessionWithSSOID(req.getSSOSessionIdentifier());
+ if (MiscUtil.isNotEmpty(req.getInternalSSOSessionIdentifier())) {
+ Logger.debug("Internal SSO-Session object: " + req.getInternalSSOSessionIdentifier() + " used for federated SSO");
+ internalSSOSessionId = req.getInternalSSOSessionIdentifier();
} else {
Logger.debug("No internal SSO-Session object exists for federated SSO --> create new session object");
- ssoSessionId = createInternalSSOSession(req).getSSOSessionID();
+ internalSSOSessionId = createInternalSSOSession(req).getSSOSessionID();
}
- if (MiscUtil.isNotEmpty(ssoSessionId)) {
+ if (MiscUtil.isNotEmpty(internalSSOSessionId)) {
try {
- dbsession = searchInDatabase(ssoSessionId);
+ dbsession = searchInDatabase(internalSSOSessionId);
}catch (MOADatabaseException e) {
Logger.error("NO MOASession found but MOASession MUST already exist!");
@@ -797,7 +781,7 @@ public class DBAuthenticationSessionStoreage implements IAuthenticationSessionSt
Query query = entityManager.createNamedQuery("getSSOSessionWithOldSessionID");
query.setParameter("sessionid", ssoId);
List<OldSSOSessionIDStore> results = query.getResultList();
-
+
Logger.trace("Found entries: " + results.size());
// Assertion requires an unique artifact