mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 06:18:12 +00:00
Added parameters full name and company to
UserManagementService.createSimpleUser method
This commit is contained in:
1 parent
7acb3890b0
commit
842d64d5e5
11 files changed
+142
-138
No files matched your search
+5
-15
@@ -50,23 +50,13 @@ public class CreateAccountActivity extends AbstractActivity implements CreateAcc
|
||||
return;
|
||||
}
|
||||
|
||||
clientFactory.getUserManagement().createSimpleUser(username, email, password, callback.getCreateConfirmationUrl(),
|
||||
new AsyncCallback<UserDTO>() {
|
||||
clientFactory.getUserManagement().createSimpleUser(username, email, password, fullName, company,
|
||||
callback.getCreateConfirmationUrl(), new AsyncCallback<UserDTO>() {
|
||||
@Override
|
||||
public void onSuccess(final UserDTO result) {
|
||||
clientFactory.getUserManagement().updateUserProperties(username, fullName, company, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void noResult) {
|
||||
clientFactory.getUserManagement().login(result.getName(), password,
|
||||
new AsyncLoginCallback(clientFactory, view, callback, false));
|
||||
placeController.goTo(new ConfirmationPlace(Action.ACCOUNT_CREATED, username));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
Window.alert(i18n_sec.errorUpdatingUserProperties(caught.getMessage()));
|
||||
}
|
||||
});
|
||||
clientFactory.getUserManagement().login(result.getName(), password,
|
||||
new AsyncLoginCallback(clientFactory, view, callback, false));
|
||||
placeController.goTo(new ConfirmationPlace(Action.ACCOUNT_CREATED, username));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-2
@@ -100,7 +100,8 @@ public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractSe
|
||||
final String password = "BertMyFriend";
|
||||
final String validationBaseURL = null; //so that validation email is not sent
|
||||
|
||||
masterSecurityService.createSimpleUser(username, email, password, validationBaseURL);
|
||||
masterSecurityService.createSimpleUser(username, email, password,
|
||||
/* fullName */ null, /* company */ null, validationBaseURL);
|
||||
|
||||
masterSecurityService.sendMail(username, "subject", "body");
|
||||
|
||||
@@ -130,7 +131,8 @@ public class SecurityReplicationLeadingToEmailReplicationTest extends AbstractSe
|
||||
final String password = "BertMyFriend";
|
||||
final String validationBaseURL = null; //so that validation email is not sent
|
||||
|
||||
replicaSecurityService.createSimpleUser(username, email, password, validationBaseURL);
|
||||
replicaSecurityService.createSimpleUser(username, email, password,
|
||||
/* fullName */ null, /* company */ null, validationBaseURL);
|
||||
|
||||
replicaSecurityService.sendMail(username, "subject", "body");
|
||||
|
||||
|
||||
+119
-113
@@ -1,113 +1,119 @@
|
||||
package com.sap.sse.security.replication.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.common.mail.MailException;
|
||||
import com.sap.sse.security.User;
|
||||
import com.sap.sse.security.shared.UserManagementException;
|
||||
|
||||
public class SimpleSecurityReplicationTest extends AbstractSecurityReplicationTest {
|
||||
@Test
|
||||
public void testSimpleReplicationOfUserCreation() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
|
||||
final String username = "Ernie";
|
||||
final String email = "ernie@sesame-street.com";
|
||||
final String password = "BertMyFriend";
|
||||
final String validationBaseURL = "http://me.to.back.com";
|
||||
assertNull(master.getUserByName(username));
|
||||
User user = master.createSimpleUser(username, email, password, validationBaseURL);
|
||||
assertNotNull(user);
|
||||
assertSame(user, master.getUserByName(username));
|
||||
assertTrue(master.checkPassword(username, password));
|
||||
final String emailValidationSecret = user.getValidationSecret();
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertEquals(username, replicatedErnie.getName());
|
||||
assertEquals(email, replicatedErnie.getEmail());
|
||||
assertTrue(replica.checkPassword(username, password));
|
||||
assertEquals(emailValidationSecret, replicatedErnie.getValidationSecret());
|
||||
}
|
||||
|
||||
@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";
|
||||
final String fullName = "Ernie's Full Name";
|
||||
final String company = "Ernie's Company";
|
||||
User user = master.createSimpleUser(username, email, password, validationBaseURL);
|
||||
user.setFullName(fullName);
|
||||
user.setCompany(company);
|
||||
final String emailValidationSecretAfterCreation = user.getValidationSecret();
|
||||
master.updateSimpleUserEmail(username, newEmail, validationBaseURL);
|
||||
final String emailValidationSecretAfterChangingEmail = user.getValidationSecret();
|
||||
assertFalse(emailValidationSecretAfterChangingEmail.equals(emailValidationSecretAfterCreation));
|
||||
assertEquals(newEmail, user.getEmail());
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertEquals(username, replicatedErnie.getName());
|
||||
assertEquals(newEmail, replicatedErnie.getEmail());
|
||||
assertEquals(emailValidationSecretAfterChangingEmail, replicatedErnie.getValidationSecret());
|
||||
assertEquals(fullName, replicatedErnie.getFullName());
|
||||
assertEquals(company, replicatedErnie.getCompany());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleReplicationOfUserPasswordChange() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
|
||||
final String username = "Ernie";
|
||||
final String email = "ernie@sesame-street.com";
|
||||
final String password = "BertMyFriend";
|
||||
final String newPassword = "ErnieAndBert";
|
||||
final String validationBaseURL = "http://me.to.back.com";
|
||||
master.createSimpleUser(username, email, password, validationBaseURL);
|
||||
master.updateSimpleUserPassword(username, newPassword);
|
||||
assertTrue(master.checkPassword(username, newPassword));
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertEquals(username, replicatedErnie.getName());
|
||||
assertFalse(replica.checkPassword(username, password));
|
||||
assertTrue(replica.checkPassword(username, newPassword));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplicationOfPasswordReset() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
|
||||
final String username = "Ernie";
|
||||
final String email = "ernie@sesame-street.com";
|
||||
final String password = "BertMyFriend";
|
||||
final String validationBaseURL = "http://me.to.back.com/validateemail";
|
||||
final String passwordResetBaseURL = "http://me.to.back.com/passwordreset";
|
||||
User user = master.createSimpleUser(username, email, password, validationBaseURL);
|
||||
master.validateEmail(username, user.getValidationSecret());
|
||||
assertTrue(user.isEmailValidated());
|
||||
master.resetPassword(username, passwordResetBaseURL);
|
||||
String passwordResetSecret = user.getPasswordResetSecret();
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertTrue(replicatedErnie.isEmailValidated());
|
||||
assertEquals(passwordResetSecret, replicatedErnie.getPasswordResetSecret());
|
||||
}
|
||||
}
|
||||
package com.sap.sse.security.replication.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.common.mail.MailException;
|
||||
import com.sap.sse.security.User;
|
||||
import com.sap.sse.security.shared.UserManagementException;
|
||||
|
||||
public class SimpleSecurityReplicationTest extends AbstractSecurityReplicationTest {
|
||||
@Test
|
||||
public void testSimpleReplicationOfUserCreation() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
|
||||
final String username = "Ernie";
|
||||
final String email = "ernie@sesame-street.com";
|
||||
final String password = "BertMyFriend";
|
||||
final String fullName = "Ernie's Full Name";
|
||||
final String company = "Ernie's Company";
|
||||
final String validationBaseURL = "http://me.to.back.com";
|
||||
assertNull(master.getUserByName(username));
|
||||
User user = master.createSimpleUser(username, email, password, fullName, company, validationBaseURL);
|
||||
assertNotNull(user);
|
||||
assertSame(user, master.getUserByName(username));
|
||||
assertTrue(master.checkPassword(username, password));
|
||||
final String emailValidationSecret = user.getValidationSecret();
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertEquals(username, replicatedErnie.getName());
|
||||
assertEquals(email, replicatedErnie.getEmail());
|
||||
assertTrue(replica.checkPassword(username, password));
|
||||
assertEquals(emailValidationSecret, replicatedErnie.getValidationSecret());
|
||||
assertEquals(fullName, replicatedErnie.getFullName());
|
||||
assertEquals(company, replicatedErnie.getCompany());
|
||||
}
|
||||
|
||||
@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";
|
||||
final String fullName = "Ernie's Full Name";
|
||||
final String company = "Ernie's Company";
|
||||
User user = master.createSimpleUser(username, email, password, fullName, company, validationBaseURL);
|
||||
user.setFullName(fullName);
|
||||
user.setCompany(company);
|
||||
final String emailValidationSecretAfterCreation = user.getValidationSecret();
|
||||
master.updateSimpleUserEmail(username, newEmail, validationBaseURL);
|
||||
final String emailValidationSecretAfterChangingEmail = user.getValidationSecret();
|
||||
assertFalse(emailValidationSecretAfterChangingEmail.equals(emailValidationSecretAfterCreation));
|
||||
assertEquals(newEmail, user.getEmail());
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertEquals(username, replicatedErnie.getName());
|
||||
assertEquals(newEmail, replicatedErnie.getEmail());
|
||||
assertEquals(emailValidationSecretAfterChangingEmail, replicatedErnie.getValidationSecret());
|
||||
assertEquals(fullName, replicatedErnie.getFullName());
|
||||
assertEquals(company, replicatedErnie.getCompany());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleReplicationOfUserPasswordChange() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
|
||||
final String username = "Ernie";
|
||||
final String email = "ernie@sesame-street.com";
|
||||
final String password = "BertMyFriend";
|
||||
final String newPassword = "ErnieAndBert";
|
||||
final String validationBaseURL = "http://me.to.back.com";
|
||||
master.createSimpleUser(username, email, password,
|
||||
/* fullName */ null, /* company */ null, validationBaseURL);
|
||||
master.updateSimpleUserPassword(username, newPassword);
|
||||
assertTrue(master.checkPassword(username, newPassword));
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertEquals(username, replicatedErnie.getName());
|
||||
assertFalse(replica.checkPassword(username, password));
|
||||
assertTrue(replica.checkPassword(username, newPassword));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReplicationOfPasswordReset() throws InterruptedException, UserManagementException, MailException, IllegalAccessException {
|
||||
final String username = "Ernie";
|
||||
final String email = "ernie@sesame-street.com";
|
||||
final String password = "BertMyFriend";
|
||||
final String validationBaseURL = "http://me.to.back.com/validateemail";
|
||||
final String passwordResetBaseURL = "http://me.to.back.com/passwordreset";
|
||||
User user = master.createSimpleUser(username, email, password,
|
||||
/* fullName */ null, /* company */ null, validationBaseURL);
|
||||
master.validateEmail(username, user.getValidationSecret());
|
||||
assertTrue(user.isEmailValidated());
|
||||
master.resetPassword(username, passwordResetBaseURL);
|
||||
String passwordResetSecret = user.getPasswordResetSecret();
|
||||
|
||||
replicaReplicator.waitUntilQueueIsEmpty();
|
||||
Thread.sleep(3000);
|
||||
|
||||
User replicatedErnie = replica.getUserByName(username);
|
||||
assertNotNull(replicatedErnie);
|
||||
assertTrue(replicatedErnie.isEmailValidated());
|
||||
assertEquals(passwordResetSecret, replicatedErnie.getPasswordResetSecret());
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -21,7 +21,7 @@ public interface UserManagementService extends RemoteService {
|
||||
|
||||
SuccessInfo login(String username, String password);
|
||||
|
||||
UserDTO createSimpleUser(String name, String email, String password, String validationBaseURL) throws UserManagementException, MailException;
|
||||
UserDTO createSimpleUser(String name, String email, String password, String fullName, String company, String validationBaseURL) throws UserManagementException, MailException;
|
||||
|
||||
/**
|
||||
* Either <code>oldPassword</code> or <code>passwordResetSecret</code> need to be provided, or the current user needs to have
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ public interface UserManagementServiceAsync {
|
||||
|
||||
void logout(AsyncCallback<SuccessInfo> callback);
|
||||
|
||||
void createSimpleUser(String name, String email, String password, String validationBaseURL, AsyncCallback<UserDTO> callback);
|
||||
void createSimpleUser(String name, String email, String password, String fullName, String company, String validationBaseURL, AsyncCallback<UserDTO> callback);
|
||||
|
||||
void updateSimpleUserPassword(String name, String oldPassword, String passwordResetSecret, String newPassword, AsyncCallback<Void> callback);
|
||||
|
||||
|
||||
+1
@@ -26,6 +26,7 @@ public class CreateUserDialog extends AbstractUserDialog {
|
||||
userManagementService
|
||||
.createSimpleUser(usernameEmailPassword.getUsername(),
|
||||
usernameEmailPassword.getEmail(), usernameEmailPassword.getPassword(),
|
||||
/* fullName */ null, /* company */ null,
|
||||
EntryPointLinkFactory.createEmailValidationLink(new HashMap<String, String>()), new AsyncCallback<UserDTO>() {
|
||||
@Override
|
||||
public void onSuccess(UserDTO result) {
|
||||
|
||||
+1
@@ -77,6 +77,7 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle
|
||||
@Override
|
||||
public void ok(final UserData userData) {
|
||||
userManagementService.createSimpleUser(userData.getUsername(), userData.getEmail(), userData.getPassword(),
|
||||
/* fullName */ null, /* company */ null,
|
||||
EntryPointLinkFactory.createEmailValidationLink(new HashMap<String, String>()),
|
||||
new MarkedAsyncCallback<UserDTO>(new AsyncCallback<UserDTO>() {
|
||||
@Override
|
||||
|
||||
+1
@@ -77,6 +77,7 @@ public class RegisterView extends Composite {
|
||||
@UiHandler("signUpButton")
|
||||
void signUpButtonClicked(ClickEvent e) {
|
||||
userManagementService.createSimpleUser(usernameTextBox.getText(), emailTextBox.getText(), passwordTextBox.getText(),
|
||||
/* fullName */ null, /* company */ null,
|
||||
EntryPointLinkFactory.createEmailValidationLink(new HashMap<String, String>()), new AsyncCallback<UserDTO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
|
||||
+2
-2
@@ -124,10 +124,10 @@ public class UserManagementServiceImpl extends RemoteServiceServlet implements U
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserDTO createSimpleUser(String name, String email, String password, String validationBaseURL) throws UserManagementException, MailException {
|
||||
public UserDTO createSimpleUser(String name, String email, String password, String fullName, String company, String validationBaseURL) throws UserManagementException, MailException {
|
||||
User u = null;
|
||||
try {
|
||||
u = getSecurityService().createSimpleUser(name, email, password, validationBaseURL);
|
||||
u = getSecurityService().createSimpleUser(name, email, password, fullName, company, validationBaseURL);
|
||||
} catch (UserManagementException e) {
|
||||
logger.log(Level.SEVERE, "Error creating user "+name, e);
|
||||
throw new UserManagementException(e.getMessage());
|
||||
|
||||
@@ -51,7 +51,7 @@ public interface SecurityService extends ReplicableWithObjectInputStream<Replica
|
||||
/**
|
||||
* @param validationBaseURL if <code>null</code>, no validation will be attempted
|
||||
*/
|
||||
User createSimpleUser(String username, String email, String password, String validationBaseURL) throws UserManagementException, MailException;
|
||||
User createSimpleUser(String username, String email, String password, String fullName, String company, String validationBaseURL) throws UserManagementException, MailException;
|
||||
|
||||
void updateSimpleUserPassword(String name, String newPassword) throws UserManagementException;
|
||||
|
||||
|
||||
@@ -191,7 +191,8 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
if (Util.isEmpty(store.getUsers())) {
|
||||
try {
|
||||
logger.info("No users found, creating default user \"admin\" with password \"admin\"");
|
||||
createSimpleUser("admin", "nobody@sapsailing.com", "admin", /* validationBaseURL */ null);
|
||||
createSimpleUser("admin", "nobody@sapsailing.com", "admin",
|
||||
/* fullName */ null, /* company */ null, /* validationBaseURL */ null);
|
||||
addRoleForUser("admin", DefaultRoles.ADMIN.getRolename());
|
||||
} catch (UserManagementException | MailException e) {
|
||||
logger.log(Level.SEVERE, "Exception while creating default admin user", e);
|
||||
@@ -322,8 +323,8 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
}
|
||||
|
||||
@Override
|
||||
public User createSimpleUser(final String username, final String email, String password,
|
||||
final String validationBaseURL) throws UserManagementException, MailException {
|
||||
public User createSimpleUser(final String username, final String email, String password, String fullName,
|
||||
String company, final String validationBaseURL) throws UserManagementException, MailException {
|
||||
if (store.getUserByName(username) != null) {
|
||||
throw new UserManagementException(UserManagementException.USER_ALREADY_EXISTS);
|
||||
}
|
||||
@@ -337,6 +338,8 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
String hashedPasswordBase64 = hashPassword(password, salt);
|
||||
UsernamePasswordAccount upa = new UsernamePasswordAccount(username, hashedPasswordBase64, salt);
|
||||
final User result = store.createUser(username, email, upa);
|
||||
result.setFullName(fullName);
|
||||
result.setCompany(company);
|
||||
final String emailValidationSecret = result.startEmailValidation();
|
||||
// don't replicate exception handling; replicate only the effect on the user store
|
||||
apply(s->s.internalStoreUser(result));
|
||||
|
||||
Reference in new issue
Block a user