Improve error message when wrong KC profile is set (#32898)
Closes #30454 Signed-off-by: Martin Bartoš <mabartos@redhat.com> Co-authored-by: Steven Hawkins <shawkins@redhat.com>
This commit is contained in:
parent
e6c5ee31e4
commit
7625e3b4ea
2 changed files with 25 additions and 11 deletions
|
@ -21,7 +21,15 @@ public class PropertiesProfileConfigResolver implements ProfileConfigResolver {
|
||||||
@Override
|
@Override
|
||||||
public Profile.ProfileName getProfileName() {
|
public Profile.ProfileName getProfileName() {
|
||||||
String profile = getter.apply("keycloak.profile");
|
String profile = getter.apply("keycloak.profile");
|
||||||
return profile != null ? Profile.ProfileName.valueOf(profile.toUpperCase()) : null;
|
|
||||||
|
if (profile != null) {
|
||||||
|
try {
|
||||||
|
return Profile.ProfileName.valueOf(profile.toUpperCase());
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
throw new ProfileException(String.format("Invalid profile '%s' specified via 'keycloak.profile' property", profile));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -85,11 +85,9 @@ public class ProfileTest {
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
properties.setProperty("keycloak.profile.feature.account_api", "disabled");
|
properties.setProperty("keycloak.profile.feature.account_api", "disabled");
|
||||||
|
|
||||||
try {
|
Assert.assertEquals("Feature account3 depends on disabled feature account-api",
|
||||||
Profile.configure(new PropertiesProfileConfigResolver(properties));
|
assertThrows(ProfileException.class,
|
||||||
} catch (ProfileException e) {
|
() -> Profile.configure(new PropertiesProfileConfigResolver(properties))).getMessage());
|
||||||
Assert.assertEquals("Feature account3 depends on disabled feature account-api", e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -107,11 +105,19 @@ public class ProfileTest {
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
properties.setProperty("keycloak.profile.feature.account_api", "invalid");
|
properties.setProperty("keycloak.profile.feature.account_api", "invalid");
|
||||||
|
|
||||||
try {
|
Assert.assertEquals("Invalid config value 'invalid' for feature key keycloak.profile.feature.account_api",
|
||||||
Profile.configure(new PropertiesProfileConfigResolver(properties));
|
assertThrows(ProfileException.class,
|
||||||
} catch (ProfileException e) {
|
() -> Profile.configure(new PropertiesProfileConfigResolver(properties))).getMessage());
|
||||||
Assert.assertEquals("Invalid config value 'invalid' for feature key keycloak.profile.feature.account_api", e.getMessage());
|
}
|
||||||
}
|
|
||||||
|
@Test
|
||||||
|
public void wrongProfileInProperties() {
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.setProperty("keycloak.profile", "experimental");
|
||||||
|
|
||||||
|
Assert.assertEquals("Invalid profile 'experimental' specified via 'keycloak.profile' property",
|
||||||
|
assertThrows(ProfileException.class,
|
||||||
|
() -> Profile.configure(new PropertiesProfileConfigResolver(properties))).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in a new issue