You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mp...@apache.org on 2011/08/22 22:39:03 UTC
svn commit: r1160421 - in /incubator/rave/trunk/rave-portal/src:
main/java/org/apache/rave/portal/model/
main/java/org/apache/rave/portal/repository/
main/java/org/apache/rave/portal/repository/impl/
main/java/org/apache/rave/portal/service/ main/java/...
Author: mpierce
Date: Mon Aug 22 20:39:03 2011
New Revision: 1160421
URL: http://svn.apache.org/viewvc?rev=1160421&view=rev
Log:
(RAVE-206) Allowing user object to be retrieved by email address. Required changes to UserRepository, UserService, and their implementation classes. Also changed initial_data.sql to provide email for default canonical account for testing purposes.
Modified:
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java
incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java
incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/model/User.java Mon Aug 22 20:39:03 2011
@@ -35,7 +35,8 @@ import java.util.Collection;
@Table(name = "user")
@SequenceGenerator(name = "userIdSeq", sequenceName = "user_id_seq")
@NamedQueries({
- @NamedQuery(name="User.getByUsername", query = "select u from User u where u.username = :username")
+ @NamedQuery(name="User.getByUsername", query = "select u from User u where u.username = :username"),
+ @NamedQuery(name="User.getByUserEmail", query = "select u from User u where u.email = :email")
})
public class User implements UserDetails, BasicEntity, Serializable {
private static final long serialVersionUID = 1L;
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/UserRepository.java Mon Aug 22 20:39:03 2011
@@ -23,4 +23,5 @@ import org.apache.rave.portal.model.User
public interface UserRepository extends Repository<User> {
User getByUsername(String username);
+ User getByUserEmail(String userEmail);
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repository/impl/JpaUserRepository.java Mon Aug 22 20:39:03 2011
@@ -43,4 +43,11 @@ public class JpaUserRepository extends A
query.setParameter("username", username);
return getSingleResult(query.getResultList());
}
+
+ @Override
+ public User getByUserEmail(String userEmail) {
+ TypedQuery<User> query = manager.createNamedQuery("User.getByUserEmail", User.class);
+ query.setParameter("email", userEmail);
+ return getSingleResult(query.getResultList());
+ }
}
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/UserService.java Mon Aug 22 20:39:03 2011
@@ -59,6 +59,11 @@ public interface UserService extends Use
User getUserById(Long id);
/**
+ * Return a user object by the user email.
+ */
+ User getUserByEmail(String userEmail);
+
+ /**
* Update the user profile information.
* @param user the modified user object
*/
Modified: incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java (original)
+++ incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java Mon Aug 22 20:39:03 2011
@@ -58,7 +58,6 @@ public class DefaultUserService implemen
if(user == null) {
throw new UsernameNotFoundException("User with username '" + username + "' was not found!");
}
- System.out.println("Can do anything else here too.");
return user;
}
@@ -126,6 +125,11 @@ public class DefaultUserService implemen
}
@Override
+ public User getUserByEmail(String userEmail){
+ return userRepository.getByUserEmail(userEmail);
+ }
+
+ @Override
public void updateUserProfile(User user) {
System.out.println("Updating user profile");
}
Modified: incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql (original)
+++ incubator/rave/trunk/rave-portal/src/main/resources/initial_data.sql Mon Aug 22 20:39:03 2011
@@ -16,44 +16,44 @@
-- under the License.
-- --- start user data ---
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_1, next value for user_id_seq), 'canonical', 'b97fd0fa25ba8a504309be2b6651ac6dee167ded', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_1, next value for user_id_seq), 'canonical', 'b97fd0fa25ba8a504309be2b6651ac6dee167ded', 'N', 'N', 'Y','canonical@test.com');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_2, next value for user_id_seq), 'john.doe', '49e5f5c7c7ae8372af9b3063c493f080d16411f5', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_2, next value for user_id_seq), 'john.doe', '49e5f5c7c7ae8372af9b3063c493f080d16411f5', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_3, next value for user_id_seq), 'jane.doe', '30dd37e81704bbbd4e235c22990802ae25b187da', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_3, next value for user_id_seq), 'jane.doe', '30dd37e81704bbbd4e235c22990802ae25b187da', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_4, next value for user_id_seq), 'george.doe', '452802e3f2ff8b7b28785f50dfaaaaf80fc1430f', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_4, next value for user_id_seq), 'george.doe', '452802e3f2ff8b7b28785f50dfaaaaf80fc1430f', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_5, next value for user_id_seq),'mario.rossi', '8aadae9f6e73a479cb8a565bcfa6e8de2b074e89', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_5, next value for user_id_seq),'mario.rossi', '8aadae9f6e73a479cb8a565bcfa6e8de2b074e89', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_6, next value for user_id_seq), 'maija.m', '18550acca1b36af6cfa41c82e1caab12073475a1', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_6, next value for user_id_seq), 'maija.m', '18550acca1b36af6cfa41c82e1caab12073475a1', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_6, next value for user_id_seq), 'http://rave2011.myopenid.com/', 'cdf15c184b7d2539b0cfc29ee9f10bad62793d50', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_6, next value for user_id_seq), 'http://rave2011.myopenid.com/', 'cdf15c184b7d2539b0cfc29ee9f10bad62793d50', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_7, next value for user_id_seq), 'one.col', '07acee6193e84ba9ae2f7b2bf26538f2d6e4b0a1', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_7, next value for user_id_seq), 'one.col', '07acee6193e84ba9ae2f7b2bf26538f2d6e4b0a1', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_8, next value for user_id_seq), 'twown.col', '24159ea43cbcecb50021cd14a1d41a8079fd9714', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_8, next value for user_id_seq), 'twown.col', '24159ea43cbcecb50021cd14a1d41a8079fd9714', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_9, next value for user_id_seq), 'three.col', 'c736434430af90772bfd4351bffa3da04cec0403', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_9, next value for user_id_seq), 'three.col', 'c736434430af90772bfd4351bffa3da04cec0403', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_10, next value for user_id_seq), 'threewn.col', 'ad67065a5bc25f86036508971a09a58e9c9131e8', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_10, next value for user_id_seq), 'threewn.col', 'ad67065a5bc25f86036508971a09a58e9c9131e8', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_11, next value for user_id_seq), 'four.col', 'c875ce4416fc56cd34c01bd366a3af5468137155', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_11, next value for user_id_seq), 'four.col', 'c875ce4416fc56cd34c01bd366a3af5468137155', 'N', 'N', 'Y',' ');
-insert into user (user_id, username, password, expired, locked, enabled)
-values (set(@user_id_12, next value for user_id_seq), 'fourwn.col', 'eb0b450eff79a33027a41a05051f5609a83667e8', 'N', 'N', 'Y');
+insert into user (user_id, username, password, expired, locked, enabled, email)
+values (set(@user_id_12, next value for user_id_seq), 'fourwn.col', 'eb0b450eff79a33027a41a05051f5609a83667e8', 'N', 'N', 'Y',' ');
--- end user data ---
--- gadget data ---
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/model/UserTest.java Mon Aug 22 20:39:03 2011
@@ -68,6 +68,7 @@ public class UserTest {
user3=new User(id,userName);
user3.setExpired(user3Expired);
user3.setEnabled(user3Enabled);
+
}
@Test
@@ -95,4 +96,5 @@ public class UserTest {
assertTrue("Account and credential nonexpirations handled correctly",user1.isAccountNonExpired() && user1.isCredentialsNonExpired());
assertTrue("Account and credential expirations handled correctly",!user2.isAccountNonExpired() && !user2.isCredentialsNonExpired());
}
+
}
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/repository/JpaUserRepositoryTest.java Mon Aug 22 20:39:03 2011
@@ -50,6 +50,7 @@ public class JpaUserRepositoryTest {
//may need updating in the future.
private static final String HASHED_SALTED_PASSWORD="b97fd0fa25ba8a504309be2b6651ac6dee167ded";
private static final Long INVALID_USER = -2L;
+ private static final String USER_EMAIL = "canonical@test.com";
@Autowired
private UserRepository repository;
@@ -61,12 +62,15 @@ public class JpaUserRepositoryTest {
assertThat(user.getUsername(), is(equalTo(USER_NAME)));
assertThat(user.getPassword(), is(equalTo(HASHED_SALTED_PASSWORD)));
assertThat(user.isAccountNonExpired(), is(true));
+ assertThat(user.getEmail(), is(equalTo(USER_EMAIL)));
}
+
@Test
public void getById_invalidId() {
User user = repository.get(INVALID_USER);
assertThat(user, is(nullValue()));
}
+
@Test
public void getByUsername_valid() {
User user = repository.getByUsername(USER_NAME);
@@ -74,10 +78,22 @@ public class JpaUserRepositoryTest {
assertThat(user.getId(), is(equalTo(USER_ID)));
assertThat(user.getPassword(), is(equalTo(HASHED_SALTED_PASSWORD)));
assertThat(user.isAccountNonExpired(), is(true));
+ assertThat(user.getEmail(), is(equalTo(USER_EMAIL)));
}
+
@Test
public void getByUsername_invalid() {
User user = repository.get(INVALID_USER);
assertThat(user, is(nullValue()));
}
+
+ @Test
+ public void getByUserEmail_valid() {
+ User user = repository.getByUserEmail(USER_EMAIL);
+ assertThat(user, CoreMatchers.notNullValue());
+ assertThat(user.getId(), is(equalTo(USER_ID)));
+ assertThat(user.getPassword(), is(equalTo(HASHED_SALTED_PASSWORD)));
+ assertThat(user.isAccountNonExpired(), is(true));
+ assertThat(user.getEmail(), is(equalTo(USER_EMAIL)));
+ }
}
Modified: incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java?rev=1160421&r1=1160420&r2=1160421&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java (original)
+++ incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/service/UserServiceTest.java Mon Aug 22 20:39:03 2011
@@ -44,6 +44,7 @@ public class UserServiceTest {
private UserService service;
private UserRepository repository;
private static final String USER_NAME = "1234";
+ private static final String USER_EMAIL="test@test.com";
@Before
public void setup() {
@@ -139,6 +140,18 @@ public class UserServiceTest {
service.setAuthenticatedUser(USER_ID);
}
+ @Test
+ public void getUserByEmail_valid() {
+ final User authUser=new User(USER_ID,USER_NAME);
+ authUser.setEmail(USER_EMAIL);
+ expect(repository.getByUserEmail(USER_EMAIL)).andReturn(authUser).anyTimes();
+ replay(repository);
+
+ UserDetails result = service.getUserByEmail(USER_EMAIL);
+ assertThat((User)result, is(sameInstance(authUser)));
+ }
+
+
@Test
public void clearAuthentication() {
SecurityContext context = new SecurityContextImpl();