1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.security;
18
19 import java.sql.Date;
20 import java.sql.Timestamp;
21
22 /***
23 * <p>
24 * PasswordCredential
25 * </p>
26 *
27 * @author <a href="mailto:ate@apache.org">Ate Douma</a>
28 * @version $Id: PasswordCredential.java 516448 2007-03-09 16:25:47Z ate $
29 */
30 public interface PasswordCredential
31 {
32 String PASSWORD_CREDENTIAL_DAYS_VALID_REQUEST_ATTR_KEY = PasswordCredential.class.getName() + ".check";
33
34 /***
35 * @return The username.
36 */
37 String getUserName();
38
39 /***
40 * @return The password.
41 */
42 char[] getPassword();
43
44 /***
45 * @return true if update required.
46 */
47 boolean isUpdateRequired();
48
49 /***
50 * @return true if enabled.
51 */
52 boolean isEnabled();
53
54 /***
55 * @return true if expired.
56 */
57 boolean isExpired();
58
59 /***
60 * @return when the password is (going to be) expired.
61 */
62 Date getExpirationDate();
63
64 /***
65 * @return the previous time the user logged in
66 */
67 Timestamp getPreviousAuthenticationDate();
68
69 /***
70 * @return the last time the user logged in
71 */
72 Timestamp getLastAuthenticationDate();
73
74 /***
75 * <p>Getter for the current number of authentication failures in a row.</p>
76 * <ul>
77 * <li>-1: never tried yet</li>
78 * <li> 0: none, or last attempt was successful</li>
79 * <li>>0: number of failures</li>
80 * </ul>
81 * @return The number of authentication failures
82 */
83 int getAuthenticationFailures();
84 }