'Not username' and 'Not email' options when creating/changing a password, should ignore letter case when comparing password to email or to username (#22804)

Signed-off-by: Pedro Henrique Silva <pesilva@redhat.com>
This commit is contained in:
Pedro Hos
2026-05-13 11:32:37 -03:00
committed by GitHub
parent 3f26004e32
commit 5ccb91bd2c
@@ -483,6 +483,52 @@ public class UserCreateTest extends AbstractUserTest {
}
}
@Test
public void createUserWithNotUsernameInvalidPassword() {
RealmRepresentation rep = managedRealm.admin().toRepresentation();
String passwordPolicy = rep.getPasswordPolicy();
rep.setPasswordPolicy("notUsername()");
managedRealm.admin().update(rep);
UserRepresentation user = new UserRepresentation();
user.setUsername("User8");
user.setEmail("User8@localhost");
CredentialRepresentation rawPassword = new CredentialRepresentation();
rawPassword.setValue("user8");
rawPassword.setType(CredentialRepresentation.PASSWORD);
user.setCredentials(Collections.singletonList(rawPassword));
managedRealm.admin().clearAdminEvents();
try (Response response = managedRealm.admin().users().create(user)) {
assertEquals(400, response.getStatus());
Assert.assertTrue(response.readEntity(String.class).contains("Invalid password: must not be equal to the username."));
rep.setPasswordPolicy(passwordPolicy);
managedRealm.admin().update(rep);
}
}
@Test
public void createUserWithNotEmailInvalidPassword() {
RealmRepresentation rep = managedRealm.admin().toRepresentation();
String passwordPolicy = rep.getPasswordPolicy();
rep.setPasswordPolicy("notEmail()");
managedRealm.admin().update(rep);
UserRepresentation user = new UserRepresentation();
user.setUsername("User9");
user.setEmail("User9@localhost");
CredentialRepresentation rawPassword = new CredentialRepresentation();
rawPassword.setValue("user9@localhost");
rawPassword.setType(CredentialRepresentation.PASSWORD);
user.setCredentials(Collections.singletonList(rawPassword));
managedRealm.admin().clearAdminEvents();
try (Response response = managedRealm.admin().users().create(user)) {
assertEquals(400, response.getStatus());
Assert.assertTrue(response.readEntity(String.class).contains("Invalid password: must not be equal to the email."));
rep.setPasswordPolicy(passwordPolicy);
managedRealm.admin().update(rep);
}
}
@Test
public void createUserWithInvalidPolicyPassword() {
RealmRepresentation rep = managedRealm.admin().toRepresentation();