[java-identity-provider COMMIT] in /trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session: AuthenticationEvent...

noreply at shibboleth.net noreply at shibboleth.net
Mon Aug 1 18:38:56 BST 2011


Author: lajoie
Date: Mon Aug  1 18:38:56 2011
New Revision: 3997

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=3997&view=rev
Log:
Working on Session management APIs

Added:
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/AuthenticationEvent.java   (with props)
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/BasicSessionManager.java   (contents, props changed)
      - copied, changed from r3994, trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/SessionManager.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/IdPSession.java   (contents, props changed)
      - copied, changed from r3994, trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/Session.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/ServiceSession.java   (with props)
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/SessionResolver.java   (with props)
Removed:
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/Session.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/SessionManager.java

Copied: trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/BasicSessionManager.java (from r3994, trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/SessionManager.java)
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/BasicSessionManager.java?p2=trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/BasicSessionManager.java&p1=trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/SessionManager.java&r1=3994&r2=3997&rev=3997&view=diff
==============================================================================
--- trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/SessionManager.java (original)
+++ trunk/idp-authn-api/src/main/java/net/shibboleth/idp/session/BasicSessionManager.java Mon Aug  1 18:38:56 2011
@@ -25,9 +25,9 @@
 
 import net.shibboleth.idp.AbstractComponent;
 
+import org.opensaml.messaging.context.Subcontext;
 import org.opensaml.util.Assert;
 import org.opensaml.util.criteria.EvaluableCriterion;
-import org.opensaml.util.resolver.Resolver;
 import org.opensaml.util.resolver.ResolverException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,10 +35,10 @@
 import edu.vt.middleware.crypt.util.HexConverter;
 
 /** Component that creates, manages and locates session. */
-public class SessionManager extends AbstractComponent implements Resolver<Session, EvaluableCriterion<Session>> {
+public class BasicSessionManager extends AbstractComponent implements SessionResolver {
 
     /** Class logger. */
-    private final Logger log = LoggerFactory.getLogger(SessionManager.class);
+    private final Logger log = LoggerFactory.getLogger(BasicSessionManager.class);
 
     /** Number of random bits within a session ID. */
     private final int sessionIDSize = 32;
@@ -62,7 +62,7 @@
     private final long sessionTimeout;
 
     /** Session storage keyed by session ID. */
-    private final Map<String, Session> sessionStore;
+    private final Map<String, IdPSession> sessionStore;
 
     /**
      * Constructor.
@@ -74,7 +74,7 @@
      *            expired. A value of 0 or less indicates that the session never times out due to inactivity.
      * @param storage session store keyed by session value, never null
      */
-    public SessionManager(String componentId, long lifetime, long timeout, Map<String, Session> storage) {
+    public BasicSessionManager(String componentId, long lifetime, long timeout, Map<String, IdPSession> storage) {
         super(componentId);
 
         prng = new SecureRandom();
@@ -86,40 +86,73 @@
         Assert.isNotNull(storage, "Session store can not be null");
         sessionStore = storage;
     }
+    
+    public Iterable<IdPSession> getSessions(){
+        return sessionStore.values();
+    }
 
     /**
      * Creates a new session.
      * 
      * @return the new session
      */
-    public Session newSession() {
+    public IdPSession newSession() {
         // generate a random session ID
         byte[] sid = new byte[sessionIDSize];
         prng.nextBytes(sid);
-        String sessionID = hexCodec.fromBytes(sid);
+        final String sessionId = hexCodec.fromBytes(sid);
 
         // generate a random secret
-        byte[] sessionSecret = new byte[16];
+        final byte[] sessionSecret = new byte[16];
         prng.nextBytes(sessionSecret);
 
         long now = System.currentTimeMillis();
-        Session session = new Session(sessionID, sessionSecret, now + sessionLifetime, sessionTimeout);
-        sessionStore.put(sessionID, session);
+        IdPSession session = new IdPSession();
+        session.setActivityInstant(now);
+        session.setExipriationInstant(now + sessionLifetime);
+        session.setId(sessionId);
+        session.setInactivityTimeout(sessionTimeout);
+        session.setSecret(sessionSecret);
+        sessionStore.put(sessionId, session);
 
         return session;
     }
 

[... 323 lines stripped ...]


More information about the commits mailing list