1 /***
2 * The contents of this file are subject to the Mozilla Public
3 * License Version 1.1 (the "License"); you may not use this file
4 * except in compliance with the License. You may obtain a copy of
5 * the License at http://www.mozilla.org/MPL/
6 *
7 * Software distributed under the License is distributed on an "AS
8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9 * implied. See the License for the specific language governing
10 * rights and limitations under the License.
11 *
12 * The Original Code is pow2ACL library.
13 *
14 * The Initial Owner of the Original Code is Power Of Two S.R.L.
15 * Portions created by Power Of Two S.R.L. are Copyright (C) Power Of Two S.R.L.
16 * All Rights Reserved.
17 *
18 * Contributor(s):
19 */
20
21 package com.pow2.struts.forms;
22
23 import javax.servlet.http.HttpServletRequest;
24
25 import org.apache.log4j.Category;
26 import org.apache.struts.action.ActionError;
27 import org.apache.struts.action.ActionErrors;
28 import org.apache.struts.action.ActionForm;
29 import org.apache.struts.action.ActionMapping;
30
31 import com.pow2.util.Util;
32
33 /***
34 * Login form class.
35 * <br>
36 * Wrap the <code>login</code> and <code>password</code> values
37 * retrieved from the login form and Validate these fields
38 * against null or blank strings.
39 *
40 * @author Luca Fossato
41 * @created 9 maggio 2002
42 */
43 public class LoginForm extends ActionForm
44 {
45 private Category cat = Category.getInstance(this.getClass());
46 private String login;
47 private String passwd;
48
49 /***
50 * Default constructor.<br>
51 * Set <code>login</code> and <code>password</code>
52 * to blank strings.
53 */
54 public LoginForm()
55 {
56 clear();
57 }
58
59
60 /***
61 * Get the login value.
62 *
63 * @return The login value
64 */
65 public String getLogin()
66 {
67 return login;
68 }
69
70
71 /***
72 * Get the password value.
73 *
74 * @return The passwd value
75 */
76 public String getPasswd()
77 {
78 return passwd;
79 }
80
81
82 /***
83 * Set the new login value.
84 *
85 * @param v The new login value.
86 */
87 public void setLogin(String v)
88 {
89 login = v;
90 }
91
92
93 /***
94 * Set the new password value.
95 *
96 * @param v The new password value
97 */
98 public void setPasswd(String v)
99 {
100 passwd = v;
101 }
102
103
104 /***
105 * Validate <code>login</code> and <code>password</code> fields.<br>
106 * These fields cannot be null or empty.
107 * <br>
108 * If the validation process finds problems, it returns an ActionErrors
109 * instance containing ActionError's, which are classes that contain
110 * the error message keys (into the application's MessageResources bundle)
111 * that should be displayed.
112 * <br>
113 * The controller servlet will store this array as a request attribute
114 * suitable for use by the <html:errors> tag, and will forward control back
115 * to the input form (identified by the <b>input property</b>
116 * for this ActionMapping).
117 *
118 * @param mapping the ActionMapping object.
119 * @param request the HttpServletRequest object.
120 * @return a collection of errors.
121 */
122 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
123 {
124 ActionErrors errors = new ActionErrors();
125
126 if (Util.isNull(login))
127 {
128 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.username.invalid"));
129 cat.warn("::validate - username is empty.");
130 }
131
132 if (Util.isNull(passwd))
133 {
134 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.passwd.invalid"));
135 cat.warn("::validate - password is empty.");
136 }
137
138 return (errors.isEmpty()) ? null : errors;
139 }
140
141
142 /***
143 * Clear the form <code>login</code> and <code>passwd</code> attributes
144 */
145 public void clear()
146 {
147 login = "";
148 passwd = "";
149 }
150 }
151