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);
+ }
}