Esempio n. 1
0
  /**
   * Find sesstion attribute "nds.control.web.ValidateMServlet" defined in ValidateMServlet, and
   * compare with user input named "verifyCode"
   */
  public NDSEvent processRequest(HttpServletRequest request) throws NDSEventException {
    String serverValidCode =
        (String) request.getSession().getAttribute("nds.control.web.ValidateMServlet");
    if (serverValidCode == null)
      throw new NDSEventException(
          "Internal error, nds.control.web.ValidateMServlet not set in session attribute");
    String userValidCode = request.getParameter("verifyCode");
    if (serverValidCode.equalsIgnoreCase(userValidCode)) {

    } else {
      throw new NDSEventException("@error-verify-code@");
    }
    DefaultWebEvent event = new DefaultWebEvent("CommandEvent");
    event.setParameter("command", "RegistrateUser");
    /**
     * add param named "nds.query.querysession", which hold QuerySession object
     *
     * @since 2.0
     */
    SessionContextManager scmanager = WebUtils.getSessionContextManager(request.getSession(true));
    UserWebImpl usr = (UserWebImpl) scmanager.getActor(WebKeys.USER);
    if (usr != null && usr.getSession() != null)
      event.put("nds.query.querysession", usr.getSession());
    event.put("JAVA.UTIL.LOCALE", usr.getLocale());
    Enumeration enu = request.getParameterNames();
    while (enu.hasMoreElements()) {
      String name = (String) enu.nextElement();
      String[] value = request.getParameterValues(name);
      if (name.equalsIgnoreCase("command")) {
        /* ############# tony 's method was deferred to EJB layer to implement,
             see nds.control.ejb.CommandFactory

        event.setParameter(name, commandName(value[0]));
        ######## yfzhu marked above */
        event.setParameter(name, value[0]);

        // nmdemo, ObjectPermit and ObjectRollback will also need spName
        // if(value[0].endsWith("Submit"))
        event.setParameter("spName", value[0]);
      } else if (value.length == 1) event.setParameter(name, value[0]);
      else event.setParameter(name, value);
    }
    return event;
  }