View Javadoc

1   /*
2    * This software was designed and created by Jason Carroll.
3    * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4    * The author can be reached at jcarroll@cowsultants.com
5    * ITracker website: http://www.cowsultants.com
6    * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7    *
8    * This program is free software; you can redistribute it and/or modify
9    * it only under the terms of the GNU General Public License as published by
10   * the Free Software Foundation; either version 2 of the License, or
11   * (at your option) any later version.
12   *
13   * This program is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   * GNU General Public License for more details.
17   */
18  
19  package org.itracker.web.forms;
20  
21  import javax.servlet.http.HttpServletRequest;
22  
23  import org.apache.struts.action.ActionErrors;
24  import org.apache.struts.action.ActionMapping;
25  import org.apache.struts.validator.ValidatorForm;
26  
27  /**
28   * This is the LoginForm Struts Form. It is used by Login form.
29   * 
30   * @author ready
31   * 
32   */
33  public class LoginForm extends ValidatorForm {
34  	/**
35  	 * 
36  	 */
37  	private static final long serialVersionUID = 1L;
38  	private String login = null;
39  	private String password = null;
40  	private boolean skip = false;
41  
42  	public String getLogin() {
43  		return login;
44  	}
45  
46  	public void setLogin(String login) {
47  		this.login = login;
48  	}
49  
50  	public String getPassword() {
51  		return password;
52  	}
53  
54  	public void setPassword(String password) {
55  		this.password = password;
56  	}
57  
58  	public void reset(ActionMapping mapping, HttpServletRequest request) {
59  		login = null;
60  		password = null;
61  
62  	}
63  
64  	/**
65  	 * Skip login authentication.
66  	 * 
67  	 * @return
68  	 */
69  	public boolean isSkip() {
70  		return skip;
71  	}
72  
73  	public ActionErrors validate(ActionMapping mapping,
74  			HttpServletRequest request) {
75  		Boolean skipLogin = (Boolean) request.getSession().getAttribute(
76  				"loginForwarded");
77  		if (null == skipLogin) {
78  			skipLogin = false;
79  		}
80  		skipLogin |= (null == getLogin() && null == getPassword());
81  		
82  		ActionErrors errors;
83  		/*
84  		 * SKIP credentials validation when forwarded to login.
85  		 */
86  		if (skipLogin == null || !skipLogin.booleanValue()) {
87  			// log.debug("execute: forwarded, skip login.");
88  			errors = super.validate(mapping, request);
89  		} else {
90  			request.getSession().removeAttribute("loginForwarded");
91  			this.skip = true;
92  			return new ActionErrors();
93  		}
94  		return errors;
95  	}
96  
97  }