assertEquals(Integer.valueOf(0), readUserTO.getFailedLogins());
}
@Test
public void checkUserSuspension() {
UserTO userTO = UserTestITCase.getSampleTO("checkSuspension@syncope.apache.org");
MembershipTO membershipTO = new MembershipTO();
membershipTO.setRoleId(7L);
AttributeTO testAttributeTO = new AttributeTO();
testAttributeTO.setSchema("testAttribute");
testAttributeTO.addValue("a value");
membershipTO.addAttribute(testAttributeTO);
userTO.addMembership(membershipTO);
userTO = restTemplate.postForObject(BASE_URL + "user/create", userTO, UserTO.class);
assertNotNull(userTO);
super.setupRestTemplate(userTO.getUsername(), "password123");
userTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
assertNotNull(userTO);
assertNotNull(userTO.getFailedLogins());
assertEquals(Integer.valueOf(0), userTO.getFailedLogins());
// authentications failed ...
super.setupRestTemplate(userTO.getUsername(), "wrongpwd1");
Throwable t = null;
try {
restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
} catch (Exception e) {
t = e;
}
assertNotNull(t);
t = null;
try {
restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
} catch (Exception e) {
t = e;
}
assertNotNull(t);
t = null;
try {
restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
} catch (Exception e) {
t = e;
}
assertNotNull(t);
t = null;
// reset admin credentials for restTemplate
super.resetRestTemplate();
userTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
assertNotNull(userTO);
assertNotNull(userTO.getFailedLogins());
assertEquals(Integer.valueOf(3), userTO.getFailedLogins());
// last authentication before suspension
super.setupRestTemplate(userTO.getUsername(), "wrongpwd1");
try {
restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
} catch (Exception e) {
t = e;
}
assertNotNull(t);
t = null;
// reset admin credentials for restTemplate
super.resetRestTemplate();
userTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
assertNotNull(userTO);
assertNotNull(userTO.getFailedLogins());
assertEquals(Integer.valueOf(3), userTO.getFailedLogins());
assertEquals("suspended", userTO.getStatus());
// check for authentication
super.setupRestTemplate(userTO.getUsername(), "password123");
try {
restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
assertNotNull(userTO);
} catch (Exception e) {
t = e;
}
assertNotNull(t);
t = null;
// reset admin credentials for restTemplate
super.resetRestTemplate();
userTO = restTemplate.getForObject(BASE_URL + "user/reactivate/" + userTO.getId(), UserTO.class);
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
super.setupRestTemplate(userTO.getUsername(), "password123");
userTO = restTemplate.getForObject(BASE_URL + "user/read/{userId}.json", UserTO.class, userTO.getId());
assertNotNull(userTO);
assertEquals(Integer.valueOf(0), userTO.getFailedLogins());
}