All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.browsermob.proxy.jetty.servlet.SessionDump Maven / Gradle / Ivy

The newest version!
// ========================================================================
// $Id: SessionDump.java,v 1.15 2005/08/13 00:01:28 gregwilkins Exp $
// Copyright 1996-2004 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at 
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ========================================================================

package org.browsermob.proxy.jetty.servlet;

import org.apache.commons.logging.Log;
import org.browsermob.proxy.jetty.html.Page;
import org.browsermob.proxy.jetty.html.TableForm;
import org.browsermob.proxy.jetty.log.LogFactory;
import org.browsermob.proxy.jetty.util.LogSupport;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.Writer;
import java.util.Date;
import java.util.Enumeration;


/* ------------------------------------------------------------ */
/** Test Servlet Sessions.
 *
 * @version $Revision: 1.15 $
 * @author Greg Wilkins (gregw)
 */
public class SessionDump extends HttpServlet
{
    private static Log log = LogFactory.getLog(SessionDump.class);

    int redirectCount=0;
    /* ------------------------------------------------------------ */
    String pageType;

    /* ------------------------------------------------------------ */
    public void init(ServletConfig config)
         throws ServletException
    {
        super.init(config);        
    }

    /* ------------------------------------------------------------ */
    public void doPost(HttpServletRequest request,
                       HttpServletResponse response) 
        throws ServletException, IOException
    {
        HttpSession session = request.getSession(false);
        String action = request.getParameter("Action");
        String name =  request.getParameter("Name");
        String value =  request.getParameter("Value");
        String age =  request.getParameter("MaxAge");

        String nextUrl = getURI(request)+"?R="+redirectCount++;
        if (action.equals("New Session"))
        {   
            session = request.getSession(true);
        }
        else 
        if (session!=null)
        {
            if (action.equals("Invalidate"))
                session.invalidate();
            else if (action.equals("Set"))
            {   
                session.setAttribute(name,value);
                try
                {
                    int m = Integer.parseInt(age);
                    session.setMaxInactiveInterval(m);
                }
                catch(Exception e)
                {
                    LogSupport.ignore(log,e);
                }
            }
            else if (action.equals("Remove"))
                session.removeAttribute(name);
        }

        String encodedUrl=response.encodeRedirectURL(nextUrl);
        response.sendRedirect(encodedUrl);
        
    }
    
        
    /* ------------------------------------------------------------ */
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) 
        throws ServletException, IOException
    {
        response.setContentType("text/html");
        Page page= new Page();

        HttpSession session = request.getSession(getURI(request).indexOf("new")>0);
        
        page.title("Session Dump Servlet: ");        
        
        TableForm tf = new TableForm(response.encodeURL(getURI(request)));
        tf.method("POST");
        
        if (session==null)
        {
            page.add("

No Session

"); tf.addButton("Action","New Session"); } else { try { tf.addText("ID",session.getId()); tf.addText("State",session.isNew()?"NEW":"Valid"); tf.addText("Creation", new Date(session.getCreationTime()).toString()); tf.addText("Last Access", new Date(session.getLastAccessedTime()).toString()); tf.addText("Max Inactive", ""+session.getMaxInactiveInterval()); tf.addText("Context",""+session.getServletContext()); Enumeration keys=session.getAttributeNames(); while(keys.hasMoreElements()) { String name=(String)keys.nextElement(); String value=session.getAttribute(name).toString(); tf.addText(name,value); } tf.addTextField("Name","Property Name",20,"name"); tf.addTextField("Value","Property Value",20,"value"); tf.addTextField("MaxAge","MaxAge(s)",5,""); tf.addButtonArea(); tf.addButton("Action","Set"); tf.addButton("Action","Remove"); tf.addButton("Action","Invalidate"); page.add(tf); tf=null; if (request.isRequestedSessionIdFromCookie()) page.add("

Turn off cookies in your browser to try url encoding
"); if (request.isRequestedSessionIdFromURL()) page.add("

Turn on cookies in your browser to try cookie encoding
"); } catch (IllegalStateException e) { log.debug(LogSupport.EXCEPTION,e); page.add("

INVALID Session

"); tf=new TableForm(getURI(request)); tf.addButton("Action","New Session"); } } if (tf!=null) page.add(tf); Writer writer=response.getWriter(); page.write(writer); writer.flush(); } /* ------------------------------------------------------------ */ public String getServletInfo() { return "Session Dump Servlet"; } /* ------------------------------------------------------------ */ private String getURI(HttpServletRequest request) { String uri=(String)request.getAttribute("javax.servlet.forward.request_uri"); if (uri==null) uri=request.getRequestURI(); return uri; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy