Index: lams_central/conf/xdoclet/listeners.xml =================================================================== diff -u -r41e3420d7cd50147599cb873f5695203fc6e17e4 -rcdc1d6923a10a004d8ebb6046d9fa7141e834d31 --- lams_central/conf/xdoclet/listeners.xml (.../listeners.xml) (revision 41e3420d7cd50147599cb873f5695203fc6e17e4) +++ lams_central/conf/xdoclet/listeners.xml (.../listeners.xml) (revision cdc1d6923a10a004d8ebb6046d9fa7141e834d31) @@ -5,4 +5,7 @@ org.lamsfoundation.lams.web.SessionListener + + org.lamsfoundation.lams.web.SharedSession + \ No newline at end of file Index: lams_central/conf/xdoclet/web-security.xml =================================================================== diff -u -r25ac272ffb5be9e7f0c2b97201de33727a617750 -rcdc1d6923a10a004d8ebb6046d9fa7141e834d31 --- lams_central/conf/xdoclet/web-security.xml (.../web-security.xml) (revision 25ac272ffb5be9e7f0c2b97201de33727a617750) +++ lams_central/conf/xdoclet/web-security.xml (.../web-security.xml) (revision cdc1d6923a10a004d8ebb6046d9fa7141e834d31) @@ -1,26 +1,113 @@ - - SecurityConstraint - - STK - *.jsp - DELETE - GET - POST - PUT - - + + + + Secure Content + *.jsp + *.html + /index.jsp + + + LEARNER + TEACHER + STAFF + AUTHOR + ADMIN + SYSADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + + + + + + Staff Content + /monitoring.do + + + STAFF + + + + + + Adminstrator Content + /admin.do + + + ADMIN + + + + + + + LAMS System Adminstrator Content + /sysadmin.do + + + SYSADMIN + + + + + + + Download Files + /download/ + + + AUTHOR + STAFF + ADMIN + SYSADMIN + + + + + + FORM + LAMS + + /login.jsp + /login.jsp?failed=y + + + + + + + Student + LEARNER + + + Student + TEACHER + + + + Can create/modify a learning design + AUTHOR + + + + Can running and monitoring a learning session + STAFF + + + + Can add/remove users to the system, set up classes of users for sessions + ADMIN + + + + Can add/remove users to the system, set up classes of users for sessions SYSADMIN - - - - SYSADMIN - SYSADMIN - - - FORM - LAMS - - /login.jsp - /login.jsp?failed=y - - \ No newline at end of file + Index: lams_central/src/java/org/lamsfoundation/lams/web/SharedSession.java =================================================================== diff -u -r6b4ef420337ade83b3ca1f4620a1ef59f6a87c84 -rcdc1d6923a10a004d8ebb6046d9fa7141e834d31 --- lams_central/src/java/org/lamsfoundation/lams/web/SharedSession.java (.../SharedSession.java) (revision 6b4ef420337ade83b3ca1f4620a1ef59f6a87c84) +++ lams_central/src/java/org/lamsfoundation/lams/web/SharedSession.java (.../SharedSession.java) (revision cdc1d6923a10a004d8ebb6046d9fa7141e834d31) @@ -24,6 +24,8 @@ import java.util.Map; import javax.servlet.ServletContext; +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; import org.apache.log4j.Logger; /** @@ -32,11 +34,30 @@ * * $version$ */ -public class SharedSession { +/* Should come out in web.xml in LAMS root web applicaton as: + * + * + * + * org.lamsfoundation.lams.web.SharedSession + * + * + */ +public class SharedSession implements HttpSessionListener{ private static Logger log = Logger.getLogger(SharedSession.class); +// TODO: hardcode for lams root context + private static String ROOT_CONTEXT = "/lams"; + private ServletContext context; - private static final String SHARE_SESSION_NAME = "name"; + private static final String SHARE_SESSION_NAME = "LAMS_SHARED_SESSION"; + /** + * This construct method is just for HttpSessionListener. To get an instance of + * this class, use getInstance(ServletContext) method. + * + */ + public SharedSession(){ + + } private SharedSession(ServletContext context){ this.context = context; } @@ -75,12 +96,27 @@ * @return */ public static SharedSession getInstance(ServletContext context){ - //TODO: hardcode for lams root context - SharedSession ss = new SharedSession(context.getContext("/lams")); + + SharedSession ss = new SharedSession(context.getContext(ROOT_CONTEXT)); if(ss.context == null){ log.error("Failed in retrieving lams core context."); return null; } return ss; } + public void sessionCreated(HttpSessionEvent event) { + } + + /** + * To ensure destroy shared session simultaneously with true HttpSession variables. + */ + public void sessionDestroyed(HttpSessionEvent event) { + if(event == null) + return; + + ServletContext context = event.getSession().getServletContext(); + //to ensure this context is root context + context = context.getContext(ROOT_CONTEXT); + context.setAttribute(SHARE_SESSION_NAME,null); + } }