01: // StrutsTestCase - a JUnit extension for testing Struts actions
02: // within the context of the ActionServlet.
03: // Copyright (C) 2002 Deryl Seale
04: //
05: // This library is free software; you can redistribute it and/or
06: // modify it under the terms of the Apache Software License as
07: // published by the Apache Software Foundation; either version 1.1
08: // of the License, or (at your option) any later version.
09: //
10: // This library is distributed in the hope that it will be useful,
11: // but WITHOUT ANY WARRANTY; without even the implied warranty of
12: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: // Apache Software Foundation Licens for more details.
14: //
15: // You may view the full text here: http://www.apache.org/LICENSE.txt
16:
17: package servletunit.struts.tests;
18:
19: import org.apache.struts.action.*;
20:
21: import javax.servlet.http.HttpServletRequest;
22: import javax.servlet.http.HttpServletResponse;
23: import javax.servlet.http.HttpSession;
24:
25: public class DynamicAction extends Action {
26:
27: public ActionForward execute(ActionMapping mapping,
28: ActionForm form, HttpServletRequest request,
29: HttpServletResponse response) {
30:
31: DynaActionForm dynaForm = (DynaActionForm) form;
32: String username = (String) dynaForm.get("username");
33: String password = (String) dynaForm.get("password");
34:
35: ActionErrors errors = new ActionErrors();
36:
37: if ((!username.equals("deryl")) || (!password.equals("radar")))
38: errors.add("password", new ActionMessage(
39: "error.password.mismatch"));
40:
41: if (!errors.isEmpty()) {
42: saveErrors(request, errors);
43: return mapping.findForward("login");
44: }
45:
46: HttpSession session = request.getSession();
47: session.setAttribute("authentication", username);
48:
49: // Remove the obsolete form bean
50: if (mapping.getAttribute() != null) {
51: if ("request".equals(mapping.getScope()))
52: request.removeAttribute(mapping.getAttribute());
53: else
54: session.removeAttribute(mapping.getAttribute());
55: }
56:
57: // Forward control to the specified success URI
58: return mapping.findForward("success");
59:
60: }
61:
62: }
|