View Javadoc
1 /* 2 * Scope: a generic MVC framework. 3 * Copyright (c) 2000-2002, The Scope team 4 * All rights reserved. 5 * 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 14 * Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 18 * Neither the name "Scope" nor the names of its contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR 27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 * 35 * 36 * $Id: LoginAppController.java,v 1.3 2002/09/05 15:41:48 ludovicc Exp $ 37 */ 38 package samples.servlet.xml.login; 39 40 41 import java.util.HashMap; 42 import org.scopemvc.controller.basic.BasicController; 43 import org.scopemvc.controller.basic.ViewContext; 44 import org.scopemvc.controller.servlet.ScopeServlet; 45 import org.scopemvc.controller.servlet.ServletContext; 46 import org.scopemvc.core.Control; 47 import org.scopemvc.core.ControlException; 48 import org.scopemvc.view.servlet.ServletView; 49 50 /*** 51 * <P> 52 * 53 * Top-most application Controller for the Login Sample, creates a child 54 * FormController, but handles the Login process itself so that any child 55 * Controller can do logins by passing a REQUEST_LOGIN Control up the chain of 56 * command. </P> 57 * 58 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A> 59 * @created 05 September 2002 60 * @version $Revision: 1.3 $ $Date: 2002/09/05 15:41:48 $ 61 */ 62 public class LoginAppController extends BasicController { 63 64 /*** 65 * TODO: describe of the Field 66 */ 67 public final static String VALIDATE_LOGIN = "Login"; 68 69 private FormController formController; 70 71 72 /*** 73 * Constructor for the LoginAppController object 74 */ 75 public LoginAppController() { 76 ServletView viewContainer = new ServletView(); 77 viewContainer.addPage(new LoginView()); 78 setView(viewContainer); 79 80 formController = new FormController(); 81 addChild(formController); 82 } 83 84 85 /*** 86 * TODO: document the method 87 */ 88 public void startup() { 89 formController.handleControl(new Control(FormController.SHOW_FORM)); 90 } 91 92 93 /*** 94 * Respond to VALIDATE_LOGIN and LoginControls.REQUEST_LOGIN. 95 * 96 * @param inControl TODO: Describe the Parameter 97 * @throws ControlException TODO: Describe the Exception 98 */ 99 protected void doHandleControl(Control inControl) throws ControlException { 100 if (inControl.matchesID(VALIDATE_LOGIN)) { 101 doValidateLogin((HashMap) inControl.getParameter()); 102 } else if (inControl.matchesID(LoginControls.REQUEST_LOGIN)) { 103 doRequestLogin(); 104 } 105 } 106 107 108 /*** 109 * TODO: document the method 110 * 111 * @param inParameters TODO: Describe the Parameter 112 */ 113 protected void doValidateLogin(HashMap inParameters) { 114 115 // In case we get here directly instead of via a child Controller 116 if (LoginManager.isLoggedIn()) { 117 startup(); 118 } 119 120 // Check the credentials 121 String username = (String) inParameters.get("username"); 122 String password = (String) inParameters.get("password"); 123 if ("Trevor".equals(username) && "Cat".equals(password)) { 124 LoginManager.logIn(); 125 HashMap redirect = LoginManager.getRedirect(); 126 if (redirect == null) { 127 startup(); 128 } else { 129 ScopeServlet.redirect(redirect); 130 } 131 } else { 132 showError("Login", "Unrecognised username/password"); 133 } 134 } 135 136 137 /*** 138 * TODO: document the method 139 */ 140 protected void doRequestLogin() { 141 // In case we get here directly instead of via a child Controller 142 if (LoginManager.isLoggedIn()) { 143 startup(); 144 } 145 146 // Store the original request to the child in session so we can redirect back after successful login 147 LoginManager.saveRedirect(); 148 149 // Now go to the login screen 150 ((ServletView) getView()).setVisible(LoginView.ID); 151 showView(); 152 } 153 }

This page was automatically generated by Maven