I am having troubles with the logout action that I have written. It directs
me to the correct page, but does not actually log the user out and close the
session. I have attached my action and the info from my struts-config file.
I am calling session.invalidate() incorrectly?
Thanks
Courtney
<!--************************************* Logoff Action
*************************************-->
<action path="/logoff"
type="org.trimet.security.actions.LogoffAction"
scope="request">
<forward name="success" path="/jsp/ctest.jsp"/>
</action>
package org.trimet.security.actions;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import java.util.Vector;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.MessageResources;
import org.apache.commons.beanutils.PropertyUtils;
import org.trimet.security.states.Constants;
import org.trimet.security.states.User;
/**
* Implementation of <strong>Action</strong> that logs user out of current
session
*
* @author Courtney S. Villegas
* @version $Revision: 1.0 $ $Date: 2002/05/13 03:03:00 $
*/
public final class LogoffAction extends Action {
// --------------------------------------------------------- Public
Methods
/**
* Process the specified HTTP request, and create the corresponding HTTP
* response (or forward to another web component that will create it).
* Return an <code>ActionForward</code> instance describing where and
how
* control should be forwarded, or <code>null</code> if the response has
* already been completed.
*
* @param mapping The ActionMapping used to select this instance
* @param actionForm The optional ActionForm bean for this request (if
any)
* @param request The HTTP request we are processing
* @param response The HTTP response we are creating
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet exception occurs
*/
public ActionForward perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
// Extract attributes we will need
Locale locale = getLocale(request);
MessageResources messages = getResources();
HttpSession session = request.getSession();
String action = request.getParameter("Load");
if (action == null)
action = "Load";
if (servlet.getDebug() >= 1)
servlet.log("LogoffAction: Processing " + action +
" action");
// Is there a currently logged on user?
User user = (User) session.getAttribute(Constants.USER_KEY);
if (user == null) {
if (servlet.getDebug() >= 1)
servlet.log(" User is not logged on in session "
+ session.getId());
return (servlet.findForward("logon"));
}
// Forward control to the GISAppDev page
if (servlet.getDebug() >= 1)
servlet.log(" Forwarding to 'GIS App Dev' page");
user=null;
session.invalidate();
return (mapping.findForward("success"));
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>