mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-10 15:32:05 -03:30
Revise Client Policies Codes - ClientPoliciesAdminTest
closes #39889 Signed-off-by: Takashi Norimatsu <takashi.norimatsu.ws@hitachi.com>
This commit is contained in:
parent
75e6d7214a
commit
dd0ef4915b
@ -51,7 +51,6 @@ import org.keycloak.services.clientpolicy.executor.SecureClientAuthenticatorExec
|
||||
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
||||
import org.keycloak.testsuite.pages.ErrorPage;
|
||||
import org.keycloak.testsuite.pages.LogoutConfirmPage;
|
||||
import org.keycloak.testsuite.pages.OAuth2DeviceVerificationPage;
|
||||
import org.keycloak.testsuite.pages.OAuthGrantPage;
|
||||
import org.keycloak.testsuite.util.ClientBuilder;
|
||||
import org.keycloak.testsuite.util.ClientPoliciesUtil.ClientPoliciesBuilder;
|
||||
@ -68,9 +67,6 @@ import org.keycloak.testsuite.util.UserBuilder;
|
||||
@EnableFeature(value = Profile.Feature.CLIENT_SECRET_ROTATION)
|
||||
public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
|
||||
@Page
|
||||
protected OAuth2DeviceVerificationPage verificationPage;
|
||||
|
||||
@Page
|
||||
protected OAuthGrantPage grantPage;
|
||||
|
||||
@ -105,7 +101,7 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
user.setUsername("create-clients");
|
||||
user.setCredentials(credentials);
|
||||
user.setClientRoles(Collections.singletonMap(Constants.REALM_MANAGEMENT_CLIENT_ID, Collections.singletonList(AdminRoles.CREATE_CLIENT)));
|
||||
user.setGroups(Arrays.asList("topGroup")); // defined in testrealm.json
|
||||
user.setGroups(List.of("topGroup")); // defined in testrealm.json
|
||||
|
||||
users.add(user);
|
||||
|
||||
@ -145,9 +141,7 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
public void testAdminClientRegisterUnacceptableAuthType() throws Exception {
|
||||
setupPolicyClientIdAndSecretNotAcceptableAuthType(POLICY_NAME);
|
||||
try {
|
||||
createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(ClientIdAndSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(ClientIdAndSecretAuthenticator.PROVIDER_ID));
|
||||
fail();
|
||||
} catch (ClientPolicyException e) {
|
||||
assertEquals(OAuthErrorException.INVALID_CLIENT_METADATA, e.getMessage());
|
||||
@ -157,9 +151,7 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
@Test
|
||||
public void testAdminClientRegisterAcceptableAuthType() throws Exception {
|
||||
setupPolicyClientIdAndSecretNotAcceptableAuthType(POLICY_NAME);
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID));
|
||||
assertEquals(JWTClientSecretAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
}
|
||||
|
||||
@ -167,8 +159,7 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
public void testAdminClientRegisterDefaultAuthType() throws Exception {
|
||||
setupPolicyClientIdAndSecretNotAcceptableAuthType(POLICY_NAME);
|
||||
try {
|
||||
createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
});
|
||||
createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {});
|
||||
fail();
|
||||
} catch (ClientPolicyException e) {
|
||||
assertEquals(OAuthErrorException.INVALID_CLIENT_METADATA, e.getMessage());
|
||||
@ -178,14 +169,10 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
@Test
|
||||
public void testAdminClientUpdateUnacceptableAuthType() throws Exception {
|
||||
setupPolicyClientIdAndSecretNotAcceptableAuthType(POLICY_NAME);
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID));
|
||||
assertEquals(JWTClientSecretAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
try {
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(ClientIdAndSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(ClientIdAndSecretAuthenticator.PROVIDER_ID));
|
||||
fail();
|
||||
} catch (ClientPolicyException cpe) {
|
||||
assertEquals(OAuthErrorException.INVALID_CLIENT_METADATA, cpe.getError());
|
||||
@ -197,15 +184,11 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
public void testAdminClientUpdateAcceptableAuthType() throws Exception {
|
||||
setupPolicyClientIdAndSecretNotAcceptableAuthType(POLICY_NAME);
|
||||
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID));
|
||||
|
||||
assertEquals(JWTClientSecretAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(JWTClientAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(JWTClientAuthenticator.PROVIDER_ID));
|
||||
assertEquals(JWTClientAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
}
|
||||
|
||||
@ -213,15 +196,11 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
public void testAdminClientUpdateDefaultAuthType() throws Exception {
|
||||
setupPolicyClientIdAndSecretNotAcceptableAuthType(POLICY_NAME);
|
||||
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID));
|
||||
|
||||
assertEquals(JWTClientSecretAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> {
|
||||
clientRep.setServiceAccountsEnabled(Boolean.FALSE);
|
||||
});
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> clientRep.setServiceAccountsEnabled(Boolean.FALSE));
|
||||
assertEquals(JWTClientSecretAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
assertEquals(Boolean.FALSE, getClientByAdmin(cId).isServiceAccountsEnabled());
|
||||
}
|
||||
@ -243,7 +222,7 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
json = (new ClientPoliciesBuilder()).addPolicy(
|
||||
(new ClientPolicyBuilder()).createPolicy(POLICY_NAME, "Persha Polityka", Boolean.TRUE)
|
||||
.addCondition(ClientUpdaterContextConditionFactory.PROVIDER_ID,
|
||||
createClientUpdateContextConditionConfig(Arrays.asList(ClientUpdaterContextConditionFactory.BY_AUTHENTICATED_USER)))
|
||||
createClientUpdateContextConditionConfig(List.of(ClientUpdaterContextConditionFactory.BY_AUTHENTICATED_USER)))
|
||||
.addProfile(PROFILE_NAME)
|
||||
.toRepresentation()
|
||||
).toString();
|
||||
@ -251,17 +230,14 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
|
||||
// Attempt to create client with set authenticator to ClientIdAndSecretAuthenticator. Should fail
|
||||
try {
|
||||
createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(ClientIdAndSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(ClientIdAndSecretAuthenticator.PROVIDER_ID));
|
||||
fail();
|
||||
} catch (ClientPolicyException e) {
|
||||
assertEquals(OAuthErrorException.INVALID_CLIENT_METADATA, e.getMessage());
|
||||
}
|
||||
|
||||
// Attempt to create client without set authenticator. Default authenticator should be set
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {
|
||||
});
|
||||
String cId = createClientByAdmin(generateSuffixedName(CLIENT_NAME), (ClientRepresentation clientRep) -> {});
|
||||
|
||||
assertEquals(X509ClientAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
|
||||
@ -277,9 +253,7 @@ public class ClientPoliciesAdminTest extends AbstractClientPoliciesTest {
|
||||
updateProfiles(json);
|
||||
|
||||
// It is allowed to update authenticator to one of allowed client authenticators. Default client authenticator is not explicitly set in this case
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> {
|
||||
clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID);
|
||||
});
|
||||
updateClientByAdmin(cId, (ClientRepresentation clientRep) -> clientRep.setClientAuthenticatorType(JWTClientSecretAuthenticator.PROVIDER_ID));
|
||||
assertEquals(JWTClientSecretAuthenticator.PROVIDER_ID, getClientByAdmin(cId).getClientAuthenticatorType());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user