diff --git a/server/src/main/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpoints.java b/server/src/main/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpoints.java index 240ff723407..8903759e243 100644 --- a/server/src/main/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpoints.java +++ b/server/src/main/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpoints.java @@ -83,8 +83,7 @@ public class IdentityProviderEndpoints implements ApplicationEventPublisherAware protected static Logger logger = LoggerFactory.getLogger(IdentityProviderEndpoints.class); - @Qualifier("aliasEntitiesEnabled") - private boolean aliasEntitiesEnabled; + private final boolean aliasEntitiesEnabled; private final IdentityProviderProvisioning identityProviderProvisioning; private final ScimGroupExternalMembershipManager scimGroupExternalMembershipManager; private final ScimGroupProvisioning scimGroupProvisioning; @@ -110,7 +109,8 @@ public IdentityProviderEndpoints( final @Qualifier("identityProviderConfigValidator") IdentityProviderConfigValidator configValidator, final IdentityZoneManager identityZoneManager, final @Qualifier("transactionManager") PlatformTransactionManager transactionManager, - final IdentityProviderAliasHandler idpAliasHandler + final IdentityProviderAliasHandler idpAliasHandler, + final @Qualifier("aliasEntitiesEnabled") boolean aliasEntitiesEnabled ) { this.identityProviderProvisioning = identityProviderProvisioning; this.scimGroupExternalMembershipManager = scimGroupExternalMembershipManager; @@ -120,6 +120,7 @@ public IdentityProviderEndpoints( this.identityZoneManager = identityZoneManager; this.transactionTemplate = new TransactionTemplate(transactionManager); this.idpAliasHandler = idpAliasHandler; + this.aliasEntitiesEnabled = aliasEntitiesEnabled; } @PostMapping() diff --git a/server/src/test/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpointsTest.java b/server/src/test/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpointsTest.java index cd70f259025..9c23277d414 100644 --- a/server/src/test/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpointsTest.java +++ b/server/src/test/java/org/cloudfoundry/identity/uaa/provider/IdentityProviderEndpointsTest.java @@ -47,9 +47,11 @@ import org.cloudfoundry.identity.uaa.constants.OriginKeys; import org.cloudfoundry.identity.uaa.extensions.PollutionPreventionExtension; import org.cloudfoundry.identity.uaa.provider.saml.SamlIdentityProviderConfigurator; +import org.cloudfoundry.identity.uaa.scim.ScimGroupExternalMembershipManager; +import org.cloudfoundry.identity.uaa.scim.ScimGroupProvisioning; import org.cloudfoundry.identity.uaa.zone.IdentityZone; -import org.cloudfoundry.identity.uaa.zone.IdentityZoneProvisioning; import org.cloudfoundry.identity.uaa.zone.beans.IdentityZoneManager; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -58,7 +60,6 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import org.mockito.ArgumentCaptor; -import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; @@ -85,22 +86,29 @@ class IdentityProviderEndpointsTest { @Mock private PlatformTransactionManager mockPlatformTransactionManager; - @Mock - private IdentityZoneProvisioning mockIdentityZoneProvisioning; - @Mock private IdentityProviderAliasHandler mockIdpAliasHandler; @Mock SamlIdentityProviderConfigurator samlConfigurator; - @InjectMocks private IdentityProviderEndpoints identityProviderEndpoints; @BeforeEach void setup() { + identityProviderEndpoints = new IdentityProviderEndpoints( + mockIdentityProviderProvisioning, + mock(ScimGroupExternalMembershipManager.class), + mock(ScimGroupProvisioning.class), + samlConfigurator, + mockIdentityProviderConfigValidationDelegator, + mockIdentityZoneManager, + mockPlatformTransactionManager, + mockIdpAliasHandler, + false + ); + lenient().when(mockIdentityZoneManager.getCurrentIdentityZoneId()).thenReturn(IdentityZone.getUaaZoneId()); - arrangeAliasEntitiesEnabled(true); lenient().when(mockIdpAliasHandler.aliasPropertiesAreValid(any(), any())) .thenReturn(true); @@ -468,12 +476,26 @@ void create_ldap_provider_removes_password() throws Exception { @Nested class Alias { + @BeforeEach + void setUp() { + arrangeAliasEntitiesEnabled(true); + } + + @AfterEach + void tearDown() { + arrangeAliasEntitiesEnabled(false); + } + private final String customZoneId = UUID.randomUUID().toString(); private void arrangeCurrentIdentityZone(final String zoneId) { when(mockIdentityZoneManager.getCurrentIdentityZoneId()).thenReturn(zoneId); } + private void arrangeAliasEntitiesEnabled(final boolean enabled) { + ReflectionTestUtils.setField(identityProviderEndpoints, "aliasEntitiesEnabled", enabled); + } + @Nested class Create { @Test @@ -1044,8 +1066,4 @@ void set_auth_client_secret() { } } } - - private void arrangeAliasEntitiesEnabled(final boolean enabled) { - ReflectionTestUtils.setField(identityProviderEndpoints, "aliasEntitiesEnabled", enabled); - } }