1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.security.spi.impl;
18
19 import org.apache.jetspeed.security.InvalidPasswordException;
20 import org.apache.jetspeed.security.SecurityException;
21 import org.apache.jetspeed.security.spi.CredentialPasswordValidator;
22
23 /***
24 * <p>
25 * SimpleCredentialPasswordValidator
26 * </p>
27 *
28 * @author <a href="mailto:ate@apache.org">Ate Douma</a>
29 * @version $Id: SimpleCredentialPasswordValidator.java 516448 2007-03-09 16:25:47Z ate $
30 */
31 public class SimpleCredentialPasswordValidator implements CredentialPasswordValidator
32 {
33 private int minPasswordLength;
34 private int minNumberOfDigits;
35
36 /***
37 * @param minPasswordLength
38 * @param minNumberOfDigits
39 */
40 public SimpleCredentialPasswordValidator(int minPasswordLength, int minNumberOfDigits)
41 {
42 this.minPasswordLength = minPasswordLength;
43 this.minNumberOfDigits = minNumberOfDigits;
44 }
45
46 /***
47 * @see org.apache.jetspeed.security.spi.CredentialPasswordValidator#validate(String)
48 */
49 public void validate(String clearTextPassword) throws SecurityException
50 {
51 int digits = 0;
52 if ( clearTextPassword == null )
53 {
54 clearTextPassword = "";
55 }
56 char[] pwd = clearTextPassword.toCharArray();
57
58 if ( minPasswordLength > 0 && pwd.length < minPasswordLength )
59 {
60 throw new InvalidPasswordException();
61 }
62
63 if ( minNumberOfDigits > 0)
64 {
65 for ( int i = 0; i < pwd.length; i++ )
66 {
67 if (Character.isDigit(pwd[i]))
68 {
69 digits++;
70 }
71 }
72 if (digits < minNumberOfDigits)
73 {
74 throw new InvalidPasswordException();
75 }
76 }
77 }
78 }