diff --git a/pom.xml b/pom.xml index 2c3fa65..683388a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.gcube.applicationsupportlayer aslcore - 4.6.1-SNAPSHOT + 4.6.2-SNAPSHOT Application Support Layer Core Library supporting dissemination of gCube content with OAI-ORE @@ -39,7 +39,11 @@ --> - + + org.gcube.common + common-authorization + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + net.sf.ehcache diff --git a/src/main/java/org/gcube/application/framework/core/session/ASLSession.java b/src/main/java/org/gcube/application/framework/core/session/ASLSession.java index 1c53b7e..c31dae1 100644 --- a/src/main/java/org/gcube/application/framework/core/session/ASLSession.java +++ b/src/main/java/org/gcube/application/framework/core/session/ASLSession.java @@ -10,21 +10,21 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import org.gcube.application.framework.accesslogger.library.impl.AccessLogger; +import org.gcube.application.framework.accesslogger.model.LoginToVreAccessLogEntry; +import org.gcube.application.framework.core.util.ASLGroupModel; +import org.gcube.application.framework.core.util.GenderType; +import org.gcube.application.framework.core.util.SessionConstants; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.scope.impl.ScopeBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; -import org.gcube.application.framework.accesslogger.library.impl.AccessLogger; -import org.gcube.application.framework.accesslogger.model.LoginToVreAccessLogEntry; //import org.gcube.application.framework.core.security.PortalSecurityManager; -import org.gcube.application.framework.core.util.ASLGroupModel; -import org.gcube.application.framework.core.util.GenderType; -import org.gcube.application.framework.core.util.SessionConstants; //import org.gcube.application.framework.core.util.UserCredential; //import org.gcube.common.core.scope.GCUBEScope; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.common.scope.impl.ScopeBean; //import org.gridforum.jgss.ExtendedGSSCredential; /** @@ -44,6 +44,7 @@ public class ASLSession{ // private ExtendedGSSCredential credential; private String parentScope; private String scope; + private String securityToken; private HashMap notifiers; String scopeName; private ASLGroupModel groupModel; @@ -360,6 +361,12 @@ public class ASLSession{ } + + public void setSecurityToken(String token){ + SecurityTokenProvider.instance.set(token); + this.securityToken = token; + } + public void logUserLogin(String scope) { innerSession.clear(); loggedIn = true; @@ -446,4 +453,9 @@ public class ASLSession{ public GenderType getUserGender() { return this.gender; } + + public String getSecurityToken() { + logger.info("getting security token: " + securityToken+" in thread "+Thread.currentThread().getId()); + return securityToken; + } } diff --git a/src/main/java/org/gcube/application/framework/core/session/SessionManager.java b/src/main/java/org/gcube/application/framework/core/session/SessionManager.java index 847a99a..bcac4c4 100644 --- a/src/main/java/org/gcube/application/framework/core/session/SessionManager.java +++ b/src/main/java/org/gcube/application/framework/core/session/SessionManager.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Set; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +40,10 @@ public class SessionManager { if (session.getScope()!=null) //covers first helper's invocation ScopeProvider.instance.set(session.getScopeName()); + if (session.getSecurityToken()!=null){ + logger.info("Setting SecurityTokenProvidet to: "+session.getSecurityToken()+" in thread "+Thread.currentThread().getId()); + SecurityTokenProvider.instance.set(session.getSecurityToken()); + } return session; }