Subversion Repositories general

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1015 dev 1
package ak.hostadmiral.core.model;
2
 
3
import java.util.Date;
4
 
5
import ak.hostadmiral.util.ModelException;
6
import ak.hostadmiral.util.DigestMd5;
7
 
8
/**
9
 *
10
 * @hibernate.class table="passwords"
11
 * @hibernate.discriminator column="digest" type="string"
12
 */
13
public abstract class PasswordStoreAbstract
14
	implements PasswordStore, Cloneable
15
{
16
	private   Long   id;
17
	private   Date   modStamp;
18
	private   User   modUser;
19
	protected String digest;
20
	protected String password;
21
 
22
	/**
23
	 *
24
	 * @hibernate.id generator-class="native"
25
	 */
26
	public Long getId()
27
	{
28
		return id;
29
	}
30
 
31
	protected void setId(Long id)
32
	{
33
		this.id = id;
34
	}
35
 
36
	/**
37
	 *
38
	 * @hibernate.timestamp column="mod_stamp"
39
	 */
40
	public Date getModStamp()
41
	{
42
		return modStamp;
43
	}
44
 
45
	protected void setModStamp(Date modStamp)
46
	{
47
		this.modStamp = modStamp;
48
	}
49
 
50
	/**
51
	 *
52
	 * @hibernate.many-to-one column="mod_user"
53
	 */
54
	public User getModUser()
55
	{
56
		return modUser;
57
	}
58
 
59
	protected void setModUser(User modUser)
60
	{
61
		this.modUser = modUser;
62
	}
63
 
64
	/**
65
	 * returns digest name, e.g. "MD5"
66
	 */
67
	public String getDigest()
68
	{
69
		return digest;
70
	}
71
 
72
	/**
73
	 * to store to persistent store
74
	 *
75
	 * @hibernate.property
76
	 */
77
	public String getPassword()
78
	{
79
		return password;
80
	}
81
 
82
	/**
83
	 * to store from persistent store
84
	 */
85
	public void setPassword(String password)
86
	{
87
		this.password = password;
88
	}
89
 
90
	/**
91
	 * to set by user
92
	 */
93
	public void setNewPassword(String password)
94
		throws ModelException
95
	{
96
		this.password = encode(password);
97
	}
98
 
99
	public boolean checkPassword(String password)
100
		throws ModelException
101
	{
102
		return this.password.equals(encode(password));
103
	}
104
 
105
    protected abstract String encode(String password)
106
		throws ModelException;
107
 
108
	public Object clone()
109
		throws CloneNotSupportedException
110
	{
111
		PasswordStoreAbstract theClone = (PasswordStoreAbstract)super.clone();
112
		theClone.password = password;
113
		return theClone;
114
	}
115
}