diff --git a/projects/samskivert/src/java/com/samskivert/servlet/user/Password.java b/projects/samskivert/src/java/com/samskivert/servlet/user/Password.java new file mode 100644 index 00000000..c8f1ff13 --- /dev/null +++ b/projects/samskivert/src/java/com/samskivert/servlet/user/Password.java @@ -0,0 +1,40 @@ +// +// $Id: Password.java,v 1.1 2004/01/31 06:24:01 mdb Exp $ + +package com.samskivert.servlet.user; + +/** + * Represents an encrypted password. Currently only used when creating + * user accounts. + */ +public class Password +{ + /** + * Creates a password from the supplied username and (unencrypted) + * password. + */ + public Password (String username, String password) + { + _encrypted = UserUtil.encryptPassword(username, password); + } + + /** + * Creates a password directly from the encrypted text. This text + * must have been created using {@link + * UserUtil#encryptPassword} or via the same algorithm. + */ + public Password (String encrypted) + { + _encrypted = encrypted; + } + + /** + * Returns the encrypted password text. + */ + public String getEncrypted () + { + return _encrypted; + } + + protected String _encrypted; +} diff --git a/projects/samskivert/src/java/com/samskivert/servlet/user/UserRepository.java b/projects/samskivert/src/java/com/samskivert/servlet/user/UserRepository.java index 7054b069..a2132d28 100644 --- a/projects/samskivert/src/java/com/samskivert/servlet/user/UserRepository.java +++ b/projects/samskivert/src/java/com/samskivert/servlet/user/UserRepository.java @@ -1,5 +1,5 @@ // -// $Id: UserRepository.java,v 1.37 2003/12/15 23:12:47 mdb Exp $ +// $Id: UserRepository.java,v 1.38 2004/01/31 06:24:01 mdb Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -116,6 +116,19 @@ public class UserRepository extends JORARepository String email, int siteId) throws InvalidUsernameException, UserExistsException, PersistenceException + { + return createUser(username, new Password(username, password), + realname, email, siteId); + } + + /** + * Like {@link #createUser(String,String,String,String,int)} except + * that the supplied password has already been encrypted. + */ + public int createUser (String username, Password password, String realname, + String email, int siteId) + throws InvalidUsernameException, UserExistsException, + PersistenceException { // create a new user object... User user = new User(); @@ -130,7 +143,7 @@ public class UserRepository extends JORARepository * in preparation for inserting the record into the database for the * first time. */ - protected void populateUser (User user, String username, String password, + protected void populateUser (User user, String username, Password password, String realname, String email, int siteId) throws InvalidUsernameException { @@ -146,7 +159,7 @@ public class UserRepository extends JORARepository } user.username = username; - user.password = UserUtil.encryptPassword(username, password, true); + user.password = password.getEncrypted(); user.realname = realname; user.email = email; user.created = new Date(System.currentTimeMillis());