Skip to content

Commit

Permalink
Move method idpWithAliasExistsInZone from JdbcIdentityProviderProvisi…
Browse files Browse the repository at this point in the history
…oning to IdentityProviderProvisioning interface
  • Loading branch information
adrianhoelzl-sap committed Jun 5, 2024
1 parent a09808b commit b77cecd
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public interface IdentityProviderProvisioning {

IdentityProvider update(IdentityProvider identityProvider, String zoneId);

boolean idpWithAliasExistsInZone(String zoneId);

IdentityProvider retrieve(String id, String zoneId);

List<IdentityProvider> retrieveActive(String zoneId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public JdbcIdentityProviderProvisioning(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

@Override
public boolean idpWithAliasExistsInZone(final String zoneId) {
final List<Integer> result = jdbcTemplate.queryForList(
IDP_WITH_ALIAS_EXISTS_QUERY,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,11 @@ public IdentityProvider update(IdentityProvider identityProvider, String zoneId)
return providerProvisioning.update(identityProvider, zoneId);
}

@Override
public boolean idpWithAliasExistsInZone(final String zoneId) {
return providerProvisioning.idpWithAliasExistsInZone(zoneId);
}

@Override
public IdentityProvider retrieve(String id, String zoneId) {
IdentityProvider p = providerProvisioning.retrieve(id, zoneId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.cloudfoundry.identity.uaa.error.UaaException;
import org.cloudfoundry.identity.uaa.provider.ClientAlreadyExistsException;
import org.cloudfoundry.identity.uaa.provider.IdentityProvider;
import org.cloudfoundry.identity.uaa.provider.JdbcIdentityProviderProvisioning;
import org.cloudfoundry.identity.uaa.provider.IdentityProviderProvisioning;
import org.cloudfoundry.identity.uaa.provider.NoSuchClientException;
import org.cloudfoundry.identity.uaa.provider.UaaIdentityProviderDefinition;
import org.cloudfoundry.identity.uaa.saml.SamlKey;
Expand Down Expand Up @@ -68,7 +68,7 @@ public class IdentityZoneEndpoints implements ApplicationEventPublisherAware {
private static final String ID_SUBDOMAIN_LOGGING = "[{}] subdomain [{}]";

private final IdentityZoneProvisioning zoneDao;
private final JdbcIdentityProviderProvisioning idpDao;
private final IdentityProviderProvisioning idpDao;
private final IdentityZoneEndpointClientRegistrationService clientRegistrationService;
private final ScimGroupProvisioning groupProvisioning;
private final IdentityZoneValidator validator;
Expand All @@ -77,7 +77,7 @@ public class IdentityZoneEndpoints implements ApplicationEventPublisherAware {
private ApplicationEventPublisher publisher;

public IdentityZoneEndpoints(final IdentityZoneProvisioning zoneDao,
final @Qualifier("identityProviderProvisioning") JdbcIdentityProviderProvisioning idpDao,
final @Qualifier("identityProviderProvisioning") IdentityProviderProvisioning idpDao,
final IdentityZoneEndpointClientRegistrationService clientRegistrationService,
final ScimGroupProvisioning groupProvisioning,
final IdentityZoneValidator validator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@
import org.cloudfoundry.identity.uaa.provider.IdentityProviderProvisioning;
import org.cloudfoundry.identity.uaa.provider.OIDCIdentityProviderDefinition;
import org.cloudfoundry.identity.uaa.provider.RawExternalOAuthIdentityProviderDefinition;
import org.cloudfoundry.identity.uaa.util.AlphanumericRandomValueStringGenerator;
import org.cloudfoundry.identity.uaa.util.UaaRandomStringUtil;
import org.cloudfoundry.identity.uaa.zone.IdentityZone;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
Expand Down Expand Up @@ -56,6 +59,8 @@
@ExtendWith(PollutionPreventionExtension.class)
@ExtendWith(MockitoExtension.class)
class ExternalOAuthProviderConfiguratorTests {
private static final AlphanumericRandomValueStringGenerator RANDOM_STRING_GENERATOR =
new AlphanumericRandomValueStringGenerator(6);

private final String UAA_BASE_URL = "https://localhost:8443/uaa";

Expand Down Expand Up @@ -386,4 +391,12 @@ void testGetIdpAuthenticationUrlAndCheckTokenFormatParameter() {
UriComponentsBuilder.fromUriString(authzUri).build().getQueryParams().toSingleValueMap();
assertThat(queryParams, hasEntry("token_format", "jwt"));
}

@ParameterizedTest
@ValueSource(booleans = {true, false})
void testIdpWithAliasExistsInZone(final boolean resultFromDelegate) {
final String zoneId = RANDOM_STRING_GENERATOR.generate();
when(mockIdentityProviderProvisioning.idpWithAliasExistsInZone(zoneId)).thenReturn(resultFromDelegate);
assertEquals(resultFromDelegate, configurator.idpWithAliasExistsInZone(zoneId));
}
}

0 comments on commit b77cecd

Please sign in to comment.