use of org.motechproject.security.domain.MotechUser in project motech by motech.
the class MotechUserServiceBundleIT method shouldChangePassword.
@Test
public void shouldChangePassword() {
motechUserService.register("userName", "password", "1234", "", asList("IT_ADMIN", "DB_ADMIN"), Locale.ENGLISH);
motechUserService.changePassword("userName", "password", "newPassword");
MotechUser motechUser = usersDataService.findByUserName("userName");
assertTrue(passwordEncoder.isPasswordValid(motechUser.getPassword(), "newPassword"));
}
use of org.motechproject.security.domain.MotechUser in project motech by motech.
the class MotechUserServiceBundleIT method shouldCreateBlockedUser.
@Test
public void shouldCreateBlockedUser() {
motechUserService.register("userName", "password", "1234", "", asList("IT_ADMIN", "DB_ADMIN"), Locale.ENGLISH, UserStatus.BLOCKED, null);
MotechUser motechUser = usersDataService.findByUserName("userName");
assertEquals(UserStatus.BLOCKED, motechUser.getUserStatus());
}
use of org.motechproject.security.domain.MotechUser in project motech by motech.
the class MotechUserServiceBundleIT method shouldActivateUser.
@Test
public void shouldActivateUser() {
motechUserService.register("userName", "password", "1234", "", asList("IT_ADMIN", "DB_ADMIN"), Locale.ENGLISH, UserStatus.BLOCKED, null);
motechUserService.activateUser("userName");
MotechUser motechUser = usersDataService.findByUserName("userName");
assertEquals(UserStatus.ACTIVE, motechUser.getUserStatus());
}
use of org.motechproject.security.domain.MotechUser in project motech by motech.
the class MotechUserServiceBundleIT method shouldNotChangePasswordWithoutOldPassword.
@Test
public void shouldNotChangePasswordWithoutOldPassword() {
motechUserService.register("userName", "password", "1234", "", asList("IT_ADMIN", "DB_ADMIN"), Locale.ENGLISH);
motechUserService.changePassword("userName", "foo", "newPassword");
MotechUser motechUser = usersDataService.findByUserName("userName");
assertTrue(passwordEncoder.isPasswordValid(motechUser.getPassword(), "password"));
}
use of org.motechproject.security.domain.MotechUser in project motech by motech.
the class MotechLoginErrorHandler method onAuthenticationFailure.
@Override
@Transactional
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
// Wrong password or username
if (exception instanceof BadCredentialsException) {
MotechUser motechUser = motechUsersDao.findByUserName(exception.getAuthentication().getName());
int failureLoginLimit = settingService.getFailureLoginLimit();
if (motechUser != null && failureLoginLimit > 0) {
int failureLoginCounter = motechUser.getFailureLoginCounter();
failureLoginCounter++;
if (failureLoginCounter > failureLoginLimit && motechUser.isActive()) {
motechUser.setUserStatus(UserStatus.BLOCKED);
failureLoginCounter = 0;
LOGGER.debug("User {} has been blocked", motechUser.getUserName());
}
motechUser.setFailureLoginCounter(failureLoginCounter);
motechUsersDao.update(motechUser);
}
if (motechUser != null && !motechUser.isActive()) {
LOGGER.debug("Redirecting to " + userBlockedUrl);
redirectStrategy.sendRedirect(request, response, userBlockedUrl);
return;
}
}
super.onAuthenticationFailure(request, response, exception);
}
Aggregations