actionForward.setPath(module + "/redirect.do");
actionForward.setPath("/redirect.do");
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,            HttpServletResponse response) throws Exception {        try {            final IUserView userView = authenticateUser(form, request);            if (userView.getRoles().isEmpty()) {                return authenticationFailedForward(mapping, request, "errors.noAuthorization");            }            final HttpSession session = request.getSession(false);            if (session != null && session.getAttribute("ORIGINAL_REQUEST") != null) {                final ActionForward actionForward = new ActionForward();                actionForward.setContextRelative(false);                actionForward.setRedirect(true);                final String originalURI = (String) session.getAttribute("ORIGINAL_URI");                final String module = StringUtils.substringBefore(originalURI                        .substring(APP_CONTEXT_LENGTH), "/");                // Set request attributes                final Map<String, Object> attributeMap = (Map<String, Object>) session                        .getAttribute("ORIGINAL_ATTRIBUTE_MAP");                final Map<String, Object> parameterMap = (Map<String, Object>) session                        .getAttribute("ORIGINAL_PARAMETER_MAP");                actionForward.setPath(module + "/redirect.do");                final HttpSession newSession = createNewSession(request, session, userView);                newSession.setAttribute("ORIGINAL_URI", originalURI);                newSession.setAttribute("ORIGINAL_MODULE", module);                newSession.setAttribute("ORIGINAL_PARAMETER_MAP", parameterMap);                newSession.setAttribute("ORIGINAL_ATTRIBUTE_MAP", attributeMap);                return actionForward;            } else {                createNewSession(request, session, userView);                Collection userRoles = userView.getRoles();                InfoRole firstTimeStudentInfoRole = new InfoRole();                firstTimeStudentInfoRole.setRoleType(RoleType.FIRST_TIME_STUDENT);                if (userRoles.contains(firstTimeStudentInfoRole)) {                    // TODO impose a period time limit                    InfoRole infoRole = getRole(RoleType.FIRST_TIME_STUDENT, userRoles);                    return buildRoleForward(infoRole);                } else {                    InfoRole personInfoRole = new InfoRole();                    personInfoRole.setRoleType(RoleType.PERSON);                    int numberOfSubApplications = getNumberOfSubApplications(userRoles);                    if (numberOfSubApplications == 1 || !userRoles.contains(personInfoRole)) {                        final InfoRole firstInfoRole = ((userRoles.isEmpty()) ? null : (InfoRole) userRoles.iterator().next());                        return buildRoleForward(firstInfoRole);                    } else {                        return mapping.findForward("sucess");                    }                }            }        } catch (ExcepcaoAutenticacao e) {            return authenticationFailedForward(mapping, request, "errors.invalidAuthentication");        }    }