001 // Copyright (c) 2001 Hursh Jain (http://www.mollypages.org)
002 // The Molly framework is freely distributable under the terms of an
003 // MIT-style license. For details, see the molly pages web site at:
004 // http://www.mollypages.org/. Use, modify, have fun !
005
006 package fc.web.forms;
007
008 import javax.servlet.*;
009 import javax.servlet.http.*;
010 import java.io.*;
011 import java.util.*;
012 import java.util.regex.*;
013
014 import fc.jdbc.*;
015 import fc.io.*;
016 import fc.util.*;
017
018 /**
019 Validates two password input boxes to see if they are the
020 same. All forms should ask for the password twice when
021 signing up the user.
022 <p>
023 Automatically resets both password fields if they do not
024 match.
025 <p>Note, password rules such as required length, characters
026 etc., are not checked by this validator. Add a {@link
027 VText} to each password field for that purupose.
028
029
030 @author hursh jain
031 **/
032 public final class VPasswordGroup extends FormValidator
033 {
034 Password field_one;
035 Password field_two;
036
037 /**
038 @param field_one the first password box
039 @param field_two the second password box
040 **/
041 public VPasswordGroup(Form f, String name, String errorMessage,
042 Password field_one, Password field_two)
043 {
044 super(f, name, errorMessage);
045 Argcheck.notnull(field_one, "parm field_one was null");
046 Argcheck.notnull(field_two, "parm field_two was null");
047 this.field_one = field_one;
048 this.field_two = field_two;
049 }
050
051 public boolean validate(FormData fd, HttpServletRequest req)
052 {
053 String one = field_one.getValue(fd);
054 String two = field_two.getValue(fd);
055 boolean result = false;
056
057 //System.out.println(">>>> 1=[" + one + "]; 2=[" + two + "]");
058 if ( one != null && one.equals(two) )
059 result = true;
060
061 if (! result) {
062 field_one.reset(fd);
063 field_two.reset(fd);
064 }
065 return result;
066 }
067
068 } //~class VPasswordGroup
069