diff --git a/conf/example.yourdomain.edu/web.xml b/conf/example.yourdomain.edu/web.xml
index 561f66c..1e8fec4 100644
--- a/conf/example.yourdomain.edu/web.xml
+++ b/conf/example.yourdomain.edu/web.xml
@@ -23,6 +23,15 @@
yourtomcatserver.yourdomain.edu
+
+ CAS Logout Filter
+ ca.usask.ulc.filters.CasLogoutFilter
+
+ ca.usask.ulc.filters.CasLogoutFilter.url
+
+ https://cas.usask.ca/cas/logout?service=https%3A%2F%2Fyourtomcatserver.yourdomain.ca
+
+
Session Init Filter
ca.usask.ulc.filters.InitSessionFilter
@@ -44,6 +53,7 @@
CAS Filter/auth/*
+ CAS Logout Filter/auth/logout
Session Init Filter/*
diff --git a/src/ca/usask/ulc/filters/CasLogoutFilter.java b/src/ca/usask/ulc/filters/CasLogoutFilter.java
new file mode 100644
index 0000000..aab03c4
--- /dev/null
+++ b/src/ca/usask/ulc/filters/CasLogoutFilter.java
@@ -0,0 +1,60 @@
+package ca.usask.ulc.filters;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.log4j.Logger;
+
+
+public final class CasLogoutFilter implements Filter
+{
+ private FilterConfig filterConfig=null;
+
+ private static Logger logger = Logger.getLogger( CasLogoutFilter.class );
+
+
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
+ {
+ HttpServletRequest local=(HttpServletRequest)request;
+ HttpSession session=local.getSession(true);
+ // clear local session
+ session.removeAttribute("edu.yale.its.tp.cas.client.filter.user");
+
+ session.removeAttribute("userIsSysadmin");
+ session.removeAttribute("userHasAccessToOfferings");
+ session.removeAttribute("userHasAccessToOrganizations");
+ session.removeAttribute("userHasAccessToOrganizations");
+
+ session.removeAttribute("sessionInitialized");
+ session.removeAttribute("JSESSIONID");
+
+ // goto CAS logout url to clear CAS session
+ String url = filterConfig.
+ getInitParameter("ca.usask.ulc.filters.CasLogoutFilter.url");
+ HttpServletResponse httpResponse = (HttpServletResponse) response;
+ httpResponse.sendRedirect(url);
+ return;
+ }
+
+
+ public void destroy()
+ {
+ this.filterConfig=null;
+ }
+
+ public void init(FilterConfig filterConfig)
+ {
+ this.filterConfig=filterConfig;
+ }
+
+}
diff --git a/web/js/global_lib.js b/web/js/global_lib.js
index abcf204..a9a2df8 100644
--- a/web/js/global_lib.js
+++ b/web/js/global_lib.js
@@ -242,12 +242,6 @@ function logout()
window.open("/cat/logout.jsp");
setTimeout('document.location="/cat/logout.jsp"',1000);
}
-function updateLoginStatusAfterlogout()
-{
- window.location="/cat/auth/myCourses.jsp";
- //window.location.reload();
- //loadURLIntoId("/cat/login.jsp","#loginStatus");
-}
function openEdit()
{
var text = "";
diff --git a/web/login.jsp b/web/login.jsp
index 4e2cf62..24b5551 100644
--- a/web/login.jsp
+++ b/web/login.jsp
@@ -23,7 +23,7 @@
String userid=(String)session.getAttribute("edu.yale.its.tp.cas.client.filter.user");
if (userid != null)
{
- %>You are logged in as <%=userid%>. Log out
+ %>You are logged in as <%=userid%>. Log out
<%
}
else
diff --git a/web/logout.jsp b/web/logout.jsp
deleted file mode 100644
index 3c29267..0000000
--- a/web/logout.jsp
+++ /dev/null
@@ -1,40 +0,0 @@
-<%--
- Copyright 2012, 2013 University of Saskatchewan
-
- This file is part of the Curriculum Alignment Tool (CAT).
-
- CAT is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- CAT is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with CAT. If not, see .
---%>
-
-
-<%@ page import="java.util.*,java.net.*,ca.usask.gmcte.*,ca.usask.ocd.ldap.*"%>
-<%
-session.removeAttribute("edu.yale.its.tp.cas.client.filter.user");
-
-session.removeAttribute("userIsSysadmin");
-session.removeAttribute("userHasAccessToOfferings");
-session.removeAttribute("userHasAccessToOrganizations");
-session.removeAttribute("userHasAccessToOrganizations");
-
-session.removeAttribute("sessionInitialized");
-session.removeAttribute("JSESSIONID");
-//session.invalidate();
-
-
-%>
-