Remove use of events within session manager
authorlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Tue, 3 Aug 2010 19:15:41 +0000 (19:15 +0000)
committerlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Tue, 3 Aug 2010 19:15:41 +0000 (19:15 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/branches/REL_2@2937 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

doc/RELEASE-NOTES.txt
src/main/java/edu/internet2/middleware/shibboleth/idp/session/impl/SessionManagerImpl.java

index 04586c0..4babce1 100644 (file)
@@ -17,6 +17,7 @@ Changes in Release 2.2.0
 [SIDP-360] - Session isn't being set within the attribute request context during a SAML1 attribute query
 [SIDP-359] - HttpServletHelper.getRelyingPartyConfirmationManager misnamed
 [SIDP-355] - Idp reinstall from source overwrite some config files even when "no overwrite" is specified
+[SIDP-301] - Remove use of events in SessionManager so that different StorageService implementations may be more easily used
 [SIDP-275] - Using standard JAAS LoginException in UP LoginHandler servlet
 [SC-63] - Use XML Schema duration syntax instead of integers for duration configuration options
 
index d7e6f8b..9846762 100644 (file)
@@ -24,27 +24,16 @@ import org.opensaml.xml.util.DatatypeHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.ApplicationEvent;
-import org.springframework.context.ApplicationListener;
 
-import edu.internet2.middleware.shibboleth.common.session.LoginEvent;
-import edu.internet2.middleware.shibboleth.common.session.LogoutEvent;
 import edu.internet2.middleware.shibboleth.common.session.SessionManager;
-import edu.internet2.middleware.shibboleth.common.util.EventingMapBasedStorageService.AddEntryEvent;
-import edu.internet2.middleware.shibboleth.common.util.EventingMapBasedStorageService.RemoveEntryEvent;
 import edu.internet2.middleware.shibboleth.idp.session.Session;
 
 /** Manager of IdP sessions. */
-public class SessionManagerImpl implements SessionManager<Session>, ApplicationContextAware, ApplicationListener {
+public class SessionManagerImpl implements SessionManager<Session> {
 
     /** Class logger. */
     private final Logger log = LoggerFactory.getLogger(SessionManagerImpl.class);
 
-    /** Spring context used to publish login and logout events. */
-    private ApplicationContext appCtx;
-
     /** Number of random bits within a session ID. */
     private final int sessionIDSize = 32;
 
@@ -106,7 +95,6 @@ public class SessionManagerImpl implements SessionManager<Session>, ApplicationC
 
         MDC.put("idpSessionId", sessionID);
         log.trace("Created session {}", sessionID);
-        appCtx.publishEvent(new LoginEvent(session));
         return session;
     }
 
@@ -186,25 +174,6 @@ public class SessionManagerImpl implements SessionManager<Session>, ApplicationC
     }
 
     /** {@inheritDoc} */
-    public void onApplicationEvent(ApplicationEvent event) {
-        if (event instanceof AddEntryEvent) {
-            AddEntryEvent addEvent = (AddEntryEvent) event;
-            if (addEvent.getValue() instanceof SessionManagerEntry) {
-                SessionManagerEntry sessionEntry = (SessionManagerEntry) addEvent.getValue();
-                appCtx.publishEvent(new LoginEvent(sessionEntry.getSession()));
-            }
-        }
-
-        if (event instanceof RemoveEntryEvent) {
-            RemoveEntryEvent removeEvent = (RemoveEntryEvent) event;
-            if (removeEvent.getValue() instanceof SessionManagerEntry) {
-                SessionManagerEntry sessionEntry = (SessionManagerEntry) removeEvent.getValue();
-                appCtx.publishEvent(new LogoutEvent(sessionEntry.getSession()));
-            }
-        }
-    }
-
-    /** {@inheritDoc} */
     public void removeSessionIndex(String index) {
         SessionManagerEntry sessionEntry = sessionStore.remove(partition, index);
         if (sessionEntry != null) {
@@ -212,13 +181,4 @@ public class SessionManagerImpl implements SessionManager<Session>, ApplicationC
             sessionEntry.getSessionIndexes().remove(index);
         }
     }
-
-    /** {@inheritDoc} */
-    public void setApplicationContext(ApplicationContext applicationContext) {
-        ApplicationContext rootContext = applicationContext;
-        while (rootContext.getParent() != null) {
-            rootContext = rootContext.getParent();
-        }
-        appCtx = rootContext;
-    }
 }
\ No newline at end of file