26,32 → 26,41 |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
DynaActionForm theForm = (DynaActionForm)form; |
ActionUtils.prepare(request, response); |
|
User user = UserManager.getInstance().loginUser( |
(String)theForm.get("login"), (String)theForm.get("password"), request.getRemoteAddr()); |
if("show".equals(mapping.getParameter())) { |
return mapping.findForward("default"); |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
User user = UserManager.getInstance().loginUser((String)theForm.get("login"), |
(String)theForm.get("password"), request.getRemoteAddr()); |
|
if(user == null) { |
Thread.sleep(1000); // FIXME: make this delay configurable |
if(user == null) { |
Thread.sleep(1000); // FIXME: make this delay configurable |
|
ActionErrors errors = new ActionErrors(); |
errors.add(ActionMessages.GLOBAL_MESSAGE, |
new ActionError(CoreResources.LOGIN_FAILED)); |
saveErrors(request, errors); |
return mapping.getInputForward(); |
} |
else { |
request.getSession().setAttribute("user", user); |
request.getSession().setAttribute(Globals.LOCALE_KEY, user.getLocale()); |
ActionErrors errors = new ActionErrors(); |
errors.add(ActionMessages.GLOBAL_MESSAGE, |
new ActionError(CoreResources.LOGIN_FAILED)); |
saveErrors(request, errors); |
return mapping.getInputForward(); |
} |
else { |
request.getSession().setAttribute("user", user); |
request.getSession().setAttribute(Globals.LOCALE_KEY, user.getLocale()); |
|
String origin = BackPath.findBackPath(request).getBackwardUrl(); |
if(origin == null || origin.length() <= 0) { |
return mapping.findForward("default"); |
String origin = BackPath.findBackPath(request).getBackwardUrl(); |
if(origin == null || origin.length() <= 0) { |
return mapping.findForward("default"); |
} |
else { |
response.sendRedirect(origin); |
return null; |
} |
} |
else { |
response.sendRedirect(origin); |
return null; |
} |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
} |