예제 #1
0
  private void logout(ReqCtx ctx, HttpServletResponse response, HttpSession session)
      throws IOException {
    String cookieId = ctx.getArgVal(JSESSIONID_tag);
    String user = ctx.getUserId();

    if (cookieId != null) {
      session.invalidate();
      SessionCounterListener.removeSession(cookieId);
      successResponse(ctx, response, "Logged Out " + user);
      log(INFO, "Logged out the user " + user);
    } else {
      errorResponse(ctx, response, "Invalid Session");
      log(WARNING, "Invalid session while logging out");
    }
  }
예제 #2
0
  /** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    boolean authenticated = true;
    ReqCtx ctx = getRequestContext(request);
    if (!ctx.isActivity()) {
      response.sendError(HttpServletResponse.SC_EXPECTATION_FAILED, "Only Activities supported");
      log(Level.WARNING, "Only Activities supported");
      return;
    }
    if (ctx.hasFile()) {
      // will handle this later
    }
    HttpSession session = request.getSession(true);
    log(Level.INFO, "Incoming session ");
    log.info("Incoming session");

    checkDB();
    if (!ctx.getOpName().equalsIgnoreCase("Login") && !ctx.getOpName().equalsIgnoreCase("Logout")) {
      String sessionId = ctx.getArgVal(JSESSIONID_tag);
      log(Level.INFO, "Cookie Id in the request:" + sessionId);
      if (sessionId == null || sessionId.length() == 0) authenticated = false;
      else {
        HttpSession sess = SessionCounterListener.getSession(sessionId);
        if (sess == null) authenticated = false;
        else {
          String user = (String) sess.getAttribute(userId_tag);
          String pass = (String) sess.getAttribute(Password_tag);
          o.println(user + " " + pass);
          authenticated = validate(user, pass, session);
          if (authenticated) log(Level.INFO, "Authenticated User " + user);
        }
      }
    }

    if (!authenticated) {
      errorResponse(
          ctx, response, "NoSession.Authentication failed!!", HttpServletResponse.SC_UNAUTHORIZED);
      log(Level.WARNING, "No Session.Authentication failed!!");
      return;
    }

    try {
      if (ctx.getOpName().equalsIgnoreCase("Login")) { //  Login Logout AddUser DeleteUser
        login(ctx, response, session);
        return;
      } else if (ctx.getOpName().equalsIgnoreCase("Logout")) {
        logout(ctx, response, session);
        return;
      }
      if (session
          .getAttribute(isOperator_tag)
          .equals("true")) { // following operations only for Operator
        if (ctx.getOpName().equalsIgnoreCase("AddUser")) {
          addUser(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("ListUser")) {
          listUser(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("EditUser")) {
          editUser(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("DeleteUser")) {
          disableUser(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("ChangeCredits")
            || ctx.getOpName().equalsIgnoreCase("RechargeUser")) {
          changeCredits(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("GetTransactions")) {
          listTransactions(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("UpdateUserAddress")) {
          updateAddress(ctx, response);
        } else if (ctx.getOpName()
            .equalsIgnoreCase("UpdateUserDetails")) { // UpdateUserDetails UpdateDevice
          updateDetails(ctx, response);
        } else if (ctx.getOpName().equalsIgnoreCase("UpdateDevice")) {
          updateDevice(ctx, response);
        }
        return;
      }

      if (ctx.getOpName().equalsIgnoreCase("LookupUser")) { //  LookupUser GetUserApps
        lookupUser(ctx, response);
      } else if (ctx.getOpName().equalsIgnoreCase("GetUserApps")) {
        getUserApps(ctx, response);
      } else if (ctx.getOpName()
          .equalsIgnoreCase("GetAppDetails")) { // GetAppDetails UpdateUserAppRole
        getAppDetails(ctx, response);
      } else if (ctx.getOpName().equalsIgnoreCase("UpdateUserAppRole")) {
        updateUserAppRole(ctx, response);
      } else if (ctx.getOpName()
          .equalsIgnoreCase("GetBillDetails")) { //  GetBillDetails DeliveryUpdate
        getBillDetails(ctx, response);
      } else if (ctx.getOpName().equalsIgnoreCase("DeliveryUpdate")) {
        deliveryUpdate(ctx, response);
      } else {
        errorResponse(ctx, response, "Wrong Action Requested");
      }
      if (null != con) {
        con.close();
        con = null;
      }

    } catch (Exception ex) {
      errorResponse(ctx, response, "Internal Error");
      getServletContext().log("Failure in doGet try block");
      o.println("Exception in doGet of Oprtr: ");
      ex.printStackTrace();
    } finally {
      try {
        if (null != con) con.close();
      } catch (Exception ex) {
      } // do nothing
      con = null;
    }

    // Notification - need not be handled  SyncDevice
  }