implemented e-mail and password change as lambda operations on SecurityServiceImpl

This commit is contained in:
Axel Uhl committed 2014-11-21 20:25:36 +01:00
1 parent d842579e48
commit a306239c3b
3 files changed
+43 -6

No files matched your search

@@ -16,9 +16,10 @@ public class SimpleSecurityReplicationTest extends AbstractSecurityReplicationTe
/**
* It's too bad that we can't use this inside a GWT bundle which is currently constrained to Java7... If it was only possible
* to extract the *.server package such that it could be compiled with Java8.
* @throws IllegalAccessException
*/
@Test
public void testSimpleReplicationOfUserCreation() throws InterruptedException, UserManagementException, MailException {
public void testSimpleReplicationOfUserCreation() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
final String username = "Ernie";
final String email = "ernie@sesame-street.com";
final String password = "BertMyFriend";
@@ -29,6 +30,7 @@ public class SimpleSecurityReplicationTest extends AbstractSecurityReplicationTe
assertSame(user, master.getUserByName(username));
assertTrue(master.checkPassword(username, password));
replicaReplicator.waitUntilQueueIsEmpty();
Thread.sleep(3000);
User replicatedErnie = replica.getUserByName(username);
@@ -37,4 +39,29 @@ public class SimpleSecurityReplicationTest extends AbstractSecurityReplicationTe
assertEquals(email, replicatedErnie.getEmail());
assertTrue(replica.checkPassword(username, password));
}
/**
* It's too bad that we can't use this inside a GWT bundle which is currently constrained to Java7... If it was only possible
* to extract the *.server package such that it could be compiled with Java8.
* @throws IllegalAccessException
*/
@Test
public void testSimpleReplicationOfUserEmailChange() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
final String username = "Ernie";
final String email = "ernie@sesame-street.com";
final String newEmail = "ernie2@sesame-street.com";
final String password = "BertMyFriend";
final String validationBaseURL = "http://me.to.back.com";
User user = master.createSimpleUser(username, email, password, validationBaseURL);
master.updateSimpleUserEmail(username, newEmail, validationBaseURL);
assertEquals(newEmail, user.getEmail());
replicaReplicator.waitUntilQueueIsEmpty();
Thread.sleep(3000);
User replicatedErnie = replica.getUserByName(username);
assertNotNull(replicatedErnie);
assertEquals(username, replicatedErnie.getName());
assertEquals(newEmail, replicatedErnie.getEmail());
}
}
@@ -18,6 +18,9 @@ public interface ReplicableSecurityService extends SecurityService {
User internalCreateSimpleUser(String username, String email, String password, String validationBaseURL)
throws UserManagementException;
void internalUpdateSimpleUserPassword(String username, String newPassword) throws UserManagementException;
Void internalUpdateSimpleUserPassword(String username, String newPassword) throws UserManagementException;
Void internalUpdateSimpleUserEmail(String username, String newEmail, String validationBaseURL)
throws UserManagementException;
}
@@ -83,7 +83,6 @@ import com.sap.sse.security.Social;
import com.sap.sse.security.SocialSettingsKeys;
import com.sap.sse.security.User;
import com.sap.sse.security.UserStore;
import com.sap.sse.security.operations.SecurityOperation;
import com.sap.sse.security.shared.Account.AccountType;
import com.sap.sse.security.shared.DefaultRoles;
import com.sap.sse.security.shared.MailException;
@@ -275,7 +274,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Replica
@Override
public User createSimpleUser(final String username, final String email, String password,
final String validationBaseURL) throws UserManagementException, MailException {
return apply((SecurityOperation<User>) thiz -> thiz.internalCreateSimpleUser(username, email, password, validationBaseURL));
return apply(thiz -> thiz.internalCreateSimpleUser(username, email, password, validationBaseURL));
}
@Override
@@ -313,16 +312,17 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Replica
@Override
public void updateSimpleUserPassword(String username, String newPassword) throws UserManagementException {
internalUpdateSimpleUserPassword(username, newPassword);
apply(s->s.internalUpdateSimpleUserPassword(username, newPassword));
}
@Override
public void internalUpdateSimpleUserPassword(String username, String newPassword) throws UserManagementException {
public Void internalUpdateSimpleUserPassword(String username, String newPassword) throws UserManagementException {
final User user = store.getUserByName(username);
if (user == null) {
throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST);
}
updateSimpleUserPassword(user, newPassword);
return null;
}
private void updateSimpleUserPassword(final User user, String newPassword) throws UserManagementException {
@@ -362,6 +362,12 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Replica
@Override
public void updateSimpleUserEmail(final String username, final String newEmail, final String validationBaseURL) throws UserManagementException {
apply(s->s.internalUpdateSimpleUserEmail(username, newEmail, validationBaseURL));
}
@Override
public Void internalUpdateSimpleUserEmail(final String username, final String newEmail,
final String validationBaseURL) throws UserManagementException {
final User user = store.getUserByName(username);
if (user == null) {
throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST);
@@ -380,6 +386,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Replica
}
}.start();
store.updateUser(user);
return null;
}
@Override