Example #1
0
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   String encoding = request.getHeader("Accept-Encoding");
   boolean supportsGzip = (encoding != null && encoding.toLowerCase().indexOf("gzip") > -1);
   SessionTerminal st = (SessionTerminal) request.getSession(true).getAttribute("terminal");
   if (st == null || st.isClosed()) {
     st = new SessionTerminal();
     request.getSession().setAttribute("terminal", st);
   }
   String str = request.getParameter("k");
   String f = request.getParameter("f");
   String dump = st.handle(str, f != null && f.length() > 0);
   if (dump != null) {
     if (supportsGzip) {
       response.setHeader("Content-Encoding", "gzip");
       response.setHeader("Content-Type", "text/html");
       try {
         GZIPOutputStream gzos = new GZIPOutputStream(response.getOutputStream());
         gzos.write(dump.getBytes());
         gzos.close();
       } catch (IOException ie) {
         // handle the error here
         ie.printStackTrace();
       }
     } else {
       response.getOutputStream().write(dump.getBytes());
     }
   }
 }
Example #2
0
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    HttpSession session = request.getSession(false);
    String token = request.getHeader(LoginTokenServlet.LOGIN_TOKEN);

    if (token == null || session == null) {
      Helpers.doForbidden(response);
      return;
    }

    String sessionToken = (String) session.getAttribute(LoginTokenServlet.LOGIN_TOKEN);
    if (sessionToken == null || !token.equals(sessionToken)) {
      session.invalidate();
      Helpers.doForbidden(response);
      return;
    }

    String encoding = request.getHeader("Accept-Encoding");
    boolean supportsGzip = (encoding != null && encoding.toLowerCase().contains("gzip"));
    SessionTerminal st = null;
    try {
      st = (SessionTerminal) session.getAttribute("terminal");
    } catch (Exception e) {
      // ignore as we create a new session
    }
    if (st == null || st.isClosed()) {
      st = new SessionTerminal(getCommandProcessor(), getThreadIO());
      // ensure to create a session as it was closed
      session = request.getSession(true);
      session.setAttribute(LoginTokenServlet.LOGIN_TOKEN, token);
      session.setAttribute("terminal", st);
    }

    String str = request.getParameter("k");
    String f = request.getParameter("f");
    String dump = st.handle(str, f != null && f.length() > 0);
    if (dump != null) {
      if (supportsGzip) {
        response.setHeader("Content-Encoding", "gzip");
        response.setHeader("Content-Type", "text/html");
        try {
          GZIPOutputStream gzos = new GZIPOutputStream(response.getOutputStream());
          gzos.write(dump.getBytes());
          gzos.close();
        } catch (IOException ie) {
          LOG.info("Exception writing response: ", ie);
        }
      } else {
        response.getOutputStream().write(dump.getBytes());
      }
    }
  }